wake-up-neo.com

Mehrere Schaltflächen mit demselben Typ und derselben ID

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?

7
cxyz

verwenden Sie einen indexbasierten Pfad wie // Eingabe [1] und // Eingabe [2] und so weiter.

5
Abhishek_Mishra

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.

5

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.

2
Faizal Ahmed

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]...
2
vishal Singh

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.

0
Maravilloso'AK

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.

0
Nora