Ich bin neu in Selen. Unten ist mein Code.
<input type="submit" id="button" value="Edit"/>
Ich habe 3 Knöpfe mit dem gleichen Typ, der gleichen ID und dem gleichen Wert. Wie klicke ich auf die einzelnen Schaltflächen? Kann mir jemand mit dem XPath helfen?
verwenden Sie einen indexbasierten Pfad wie // Eingabe [1] und // Eingabe [2] und so weiter.
Ich habe dieses Problem folgendermaßen gelöst:
String cssSelectorOfSameElements="input[type='submit'][id='button']";
List<WebElement> a=driver.findElements(By.cssSelector(cssSelectorOfSameElements)) ;
a.get(0).click();
//a.get(1).click();
//a.get(2).click();
hängt davon ab, auf welche Schaltfläche Sie klicken müssen. Ich hoffe, das funktioniert für Sie.
Identifizieren Sie das unabhängige Element. Geben Sie zunächst an, wo Sie das abhängige Element identifizieren können.
Angenommen, Sie haben die Schaltfläche neben Ländern wie Indien, USA, Australien. Wenn Sie auf die Schaltfläche neben "USA" klicken möchten, schreiben Sie am besten "xpath", um die USA zu identifizieren. Gehen Sie im HTML-Baum einen Schritt zurück und identifizieren Sie die Schaltfläche, die zu 100% für alle funktioniert.
Es gibt einen einfacheren Weg, durch den wir den eindeutigen xpath herausfinden entweder den generieren können
indexing like xpath = (// Eingabe von [@ id = 'ndncchk']) [0], xpath = (// Eingabe von [@ id = 'ndncchk']) [1], xpath = (// Eingabe [@ id = 'ndncchk']) [2]
oder wir können herausfinden, der absolute xpath der Weg ist:
muss firebug> firebug öffnen> gehe zu firepath> es wird eine kleine Dropdown-Liste geben, die Genarate absolute xpath ausgewählt hat:
es wird so aussehen:
html/body/div[1]/form[1]/div[2]/div/div[2]/div[2]/div/div[3]/div[17]/div[2]/input[1]
html/body/div[1]/form[1]/div[2]/div/div[2]/div[2]/div/div[3]/div[17]/div[2]/input[2]...
Dieses funktionierte für mich, als ich versuchte, die mehrfachen kombinierten Kästen von der Chromkonsole zu lokalisieren.
$x("//select[@class='form-control']")[1]
Es gab mir das richtige Kombinationsfeld mit allen Optionen darunter zurück.
Versuchen Sie es mit //input[@id='button' and @value='Edit'][1]
. Im Allgemeinen möchte ich sehen, was die übergeordneten Knoten sind, und möglicherweise die übergeordneten Knoten angeben, damit sie eindeutig werden.