2009-06-02 10 views
0

Ich möchte einen benutzerdefinierten Locator mit Selen definieren und möchte, dass er den vorhandenen xpath locator verwendet.selen: ein benutzerdefinierter Locator, der den xpath locator verwendet

Der folgende Code funktioniert nicht. Wie soll ich das machen?

PageBot.prototype.locateElementByNg= function(text, inDocument) { 
    var xpath = doSomeManipulation(text); 
    return PageBot.prototype.locateElementByXpath(xpath, inDocument); 
}; 

Antwort

1

Werfen Sie einen Blick auf chrome: //selenium-ide/content/locatorBuilders.js

Schnell Lösung, wie Sie Ihre eigenen basierend auf XPath aufbauen können:

LocatorBuilders: ein Attribut. ('XPath: Attribute' hinzufügen, function (e) {

nur Namen ändern zu 'XPath: by_ng'

und verwenden sie es als die einzigen in Bevorzugtes Attribut const PREFERRED_ATTRIBUTES = ['by_ng'];

und dann verwenden, in

LocatorBuilders.order = [ 'XPath: by_ng', 'XPath: link'];

<a id="some" name="other" by_ng="this will be catched">test</a> 

Wenn Sie mit der Struktur arbeiten müssen es:

<a id="some" name="other" by_ng="this will be catched"> 
    <img /> 
    <span>Text</span> 
    <p>Some text <b>bold</b></p> 
</a> 

dann einige zusätzliche Änderungen erforderlich sein werden

Ich werde arbeiten.