Ich versuche, auf eine Schaltfläche "Speichern" zu klicken. Html of Save button:Fehler: Element ist nicht sichtbar, wird beim Zugriff auf ein Element mit Dynamic Xpath angezeigt, während der relative Xpath funktioniert
<div class="button button--large ng-binding" ng-click="params.applyWrapper()">Save</div>
Jetzt, wenn ich relative XPath verwenden, um einen Klick zu bekommen, funktioniert es gut. Es wird kein Fehler angezeigt und das Klicken auf dieses Element ist erfolgreich.
driver.findElement(webdriver.By.xpath(".//*[@id='navcontainer']/ons-page[4]/div[2]/div/ng-form/fieldset/ul/li[8]/div")).click();
jedoch die Verwendung dynamischer XPath wie unten angegeben ergibt sich ein Fehler „ElementNotVisibleError: Element nicht sichtbar“
driver.findElement(webdriver.By.xpath(".//div[contains(text(),'Save')]")).click();
, was der Grund sein könnte, und wie bekomme ich einen Klick auf dieses Element mit dynamischer XPath ?
Verwenden Sie explizit warten auf die Schaltfläche sichtbar sein und versuchen Sie es. Es besteht die Möglichkeit, dass Ihr erstes xpath-Element das Element vom übergeordneten Knoten findet, so dass es sich in Ihrem dynamischen xpath befindet. Es ist jedoch unsichtbar, da es Zeit benötigt, um sichtbar zu werden – NarendraR
Hi @NarendraRajput .. nach Ihrem Vorschlag habe ich versucht, das Element zuerst zu finden und dann darauf zu warten, dass es wie unten angegeben sichtbar ist. var button = driver.wait (webdriver.until.elementLocated (webdriver.By.xpath ("// div [enthält (text(), 'Speichern')] "))); driver.wait (bis.ElementIsVisible (button)). Click(); 'Die Wartezeit ist unendlich. Der Treiber wartet weiterhin darauf, dass das Element sichtbar ist. Bei Verwendung von Absolute Xpath dauerte es nicht lange, auf das Element zuzugreifen. Etwas ist fischig. –
Wo fügen Sie die Wartezeit in diesem Code hinzu? – kushal