Es gibt einfachen Code, der für die Drop-Down-Liste warten Sie auf Seite angezeigt:Warum funktioniertElementPresent nicht?
var By = this.webdriver.By;
var driver = this.driver;
var bySelector = By.xpath('//*[@id="searchForm"]//*[@class="autocomplete-suggestions autocomplete-suggestion-withgroup"]');
return driver.wait(() => {
driver.isElementPresent(bySelector);
}, 6000)
.then((bool) => {
assert.isTrue(bool);
});
Dieser Code gibt mir eine Fehlermeldung: Error: Wait timed out after 6011ms
Es gibt ein Element Eigenschaften:
Nach ckicking auf Suchfeld Stil Eigenschaft display:
dieses Elements ändern auf none
zu block
. Ich kann auch nichts in Elternelementen sehen, was dieses Element unsichtbar macht. Ich verstehe nicht wirklich, was ich falsch mache.
Ich muss auf Element in dieser Dropdown-Liste klicken, und jetzt kann ich es nur nach this.driver.sleep(some ms)
tun. Aber es schlechte Praxis und ich will verstehen, was ich falsch mache, wenn wait
Methode verwenden und immer noch es verwenden. TY.
TY, aber warum denkst du, dass es falsch xpath? Ihr Code gibt mir den gleichen Fehler ..... Tatsächlich versuche ich viele Variation Xpath Ausdruck, aber den gleichen Fehler. – Valentina
@Valentina kann man nicht // in der Mitte von Xpath schreiben. Verwenden Sie Xpath-Achse zum Erkunden Kind/Nachkommen-Elemente –
Alexey, warum denkst du? Eigentlich kann ich diese Syntax verwenden. Es ist ein gültiger XPath-Ausdruck. – Valentina