Erwartete Bedingung fehlgeschlagen: warten auf die Sichtbarkeit des Elements, die sich durch.xpath
Ich versuche, klicken Sie auf den link "Anmelden" auf der Website alibaba.com
Dies ist mein test-Fall:
public class TestCase {
public static void main(String[] args) throws InterruptedException {
//TODO Auto-generated method stub
String URL = "http://www.alibaba.com/";
WebDriver driver;
System.setProperty("webdriver.chrome.driver",
"D:\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.get(URL);
Thread.sleep(2000);
SignIn.SignIn_click(driver).click();
}
}
Dies ist eine Objekt-Klasse, wo in bin Auffinden der web-element
package PageObjects;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class SignIn {
private static WebElement element = null;
public static WebElement SignIn_click(WebDriver driver) {
element = (new WebDriverWait(driver, 10)).until(ExpectedConditions
.visibilityOfElementLocated(By
.xpath("//a[@data-val='ma_signin']")));
element = driver.findElement(By
.xpath("//a[@data-val='ma_signin']"));
return element;
}
}
Aber wenn ich diesen code ausführen , ich bin immer diese exception:
Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of element located by By.xpath: //a[@data-val='ma_signin'] (tried for 10 second(s) with 500 MILLISECONDS interval)
Build info: version: 'unknown', revision: '86a5d70', time: '2017-02-16 07:47:51 -0800'
System info: host: 'ANUM-PC', ip: '172.16.11.162', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_121'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41), userDataDir=C:\Users\Anum\AppData\Local\Temp\scoped_dir1716_14873}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=59.0.3071.115, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}]
Session ID: d0c1083c113270bd4ded08846544878e
at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:257)
at PageObjects.SignIn.SignIn_click(SignIn.java:15)
at AutomationFramework.TestCase.main(TestCase.java:24)
Bitte helfen Sie mir, dieses.
- versuchen Sie, einen größeren timeout. machen Sie 100 Sekunden und sehen, was passiert.
- Bekommen diese jetzt: Exception in thread "main" org.openqa.Selen.TimeoutException: Erwarteter Zustand ist fehlgeschlagen: warten auf die Sichtbarkeit des Elements, die sich durch.xpath: //a[@data-val='ma_signin'] (versucht, für 100 Sekunde(s) mit 500 MILLISEKUNDEN Intervall)
- Dies geschieht normalerweise, wenn Sie haben eine loadng overlay platziert, während eine Seite geladen wird. In solchen Fällen ist Selen nicht finden kann, die Elemente nach dem laden verschwindet. Haben Sie eine solche überlagerung im Ort?
- Ja , ein overlay geöffnet wird, auch wenn der Benutzer die Maus bewegen Sie den Mauszeiger auf link Anmelden. Aber einen Klick auf anmelden leitet den Benutzer zur Anmeldeseite. Was also tun in diesem Fall?
- warten Sie, bis die Unsichtbarkeit der overlay -:)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte versuchen Sie das folgende:
Hier ist die Antwort auf Ihre Frage:
Den
xpath
Sie konstruiert haben//a[@data-val='ma_signin']
ist nicht eindeutig. Diexpath
Spiele mit 3 Knoten. Wenn Sie möchten, klicken Sie aufSign In
- Taste können Sie erwägen, diese einzigartigexpath
:xpath
zur Verfügung gestellt vonfirepath
istabsolute xpath
und Ihr Bezug zum Konstrukt einer einzigartigenlogical xpath
. Dank