2016-10-27 4 views
0

Jungs könnten Sie bitte mir helfen.Selenium Finden Sie Xpath für Vorschläge aus der Dropdown-Liste

brauche ich XPath für die iphone 6s zu finden (Vorschlag gegeben, wenn ich schreibe 'iphone' im Suchfeld)

enter image description here

Das funktioniert nicht:

Actions actions = new Actions (driver); 
actions.moveToElement(searchField).perform(); 
driver.findElement(By.linkText("iphone 6s")).click(); 
+0

Der Textlink ist nicht "iphone 6s" den gesamten Text oder die Daten-Abfrage-Attribut verwenden? – user993553

+0

Wie wäre es mit 'By.xpath (" // * [enthält (text(), 'iphone 6s')] "? – JDelorean

+0

Ich habe es versucht. Hat nicht funktioniert – Aksana

Antwort

0

Versuchen Sie, folgendes ausführen:

Actions actions = new Actions (driver); 
WebElement inputField = driver.findElement(By.xpath("//input[@type='text']")); 
actions.moveToElement(inputField).sendKeys("iphone 6s") 
.moveToElement(driver.findElement(By.xpath("//a[span[text()=' 6s']]"))) 
.click() 
.build() 
.perform(); 
+0

nein. Funktioniert nicht – Aksana

+0

Keine Ausnahmen? – Andersson

+0

kein solches Element : Element kann nicht gefunden werden: {"method": "xpath", "selector": "// a [span [text() = '6s']]"} – Aksana

0

Der CSS-Selektor "a[data-query='iphone 6s']" sollte funktionieren.

driver.findElement(By.cssSelector("a[data-query='iphone 6s']")).click(); 
+0

funktioniert nicht. Kein solches Element: Element kann nicht gefunden werden : {"Methode": "CSS-Selektor", "Selektor": "a [data-query = 'iphone 6s']"} – Aksana

0

Sie benötigen einen Kellner hinzufügen für die Vorschläge zu erscheinen und Sie können By.linkText nicht verwenden, da die Ergebnisse nicht <a> Tags.

Hier arbeitet Beispiel (Java) für die Website:

By searchInput = By.cssSelector("#gh-search-input"); 
By suggestionIPhone = By.cssSelector("ul.suggestion-list li[title='iphone 6s']"); 

driver.findElement(searchInput).sendKeys("iphone 6s"); 

new WebDriverWait(driver, 15) 
    .until(ExpectedConditions.presenceOfElementLocated(suggestionIPhone)) 
    .click(); 
Verwandte Themen