Selenium WebDriver findElement(By.xpath()) nu funcționează pentru mine (Programare, Xpath, Selenium, Webdriver)

user2457894 a intrebat.

Am parcurs tutorialele xpath și am verificat multe alte posturi, prin urmare nu sunt sigur ce îmi lipsește. Pur și simplu încerc să găsesc următorul element prin xpath:

<input class="t-TextBox" type="email" test-id="test-username"/>

Am încercat multe lucruri, cum ar fi::

element = findElement(By.xpath("//[@test-id='test-username']"));

Eroarea este Expression is not a legal expression.

Folosesc Firefox pe MacBook

Orice sugestie ar fi foarte apreciată.

Comentarii

8 răspunsuri
Andrian Durlestean
element = findElement(By.xpath("//*[@test-id='test-username']");
element = findElement(By.xpath("//input[@test-id='test-username']");

(*) – orice tagname

leonhart

Ar trebui să adăugați numele tag-ului în xpath, cum ar fi:

element = findElement(By.xpath("//input[@test-id='test-username']");

Arpan Buch

sintaxa ta este complet greșită….trebuie să dai findelement driverului

adică codul tău va fi :

WebDriver driver = new FirefoxDriver();
WebeElement element ;

element = driver.findElement(By.xpath("//[@test-id='test-username']"); 

// xpath-ul tău este: "//[@test-id='test-username']"

Vă sugerez să încercați acest lucru:"//*[@test-id='test-username']"

Sitnikov M

Ați omis paranteza de închidere de la sfârșit:

element = findElement(By.xpath("//[@test-id='test-username']"));

Umesh

Trebuie doar să adăugați * la începutul xpath-ului și paranteza de închidere la sfârșit.

element = findElement(By.xpath("//*[@test-id='test-username']"));

Prash

Nu ați specificat pe ce fel de element html încercați să efectuați o căutare xpath absolută. În cazul tău, este vorba de elementul de intrare.

Încearcă asta:

element = findElement(By.xpath("//input[@class='t-TextBox' and @type='email' and @test-    
id='test-username']");

Shivendra Pandey

Corect Xpath sintaxa este de genul:

//tagname[@value='name']

Deci, ar trebui să scrieți ceva de genul acesta:

findElement(By.xpath("//input[@test-id='test-username']"));

Juarez Lustosa.

Puteți folosi și „conține”:

element = findElement(By.xpath("//input[contains (@test-id,"test-username")]");