【发布时间】:2017-12-21 21:56:31
【问题描述】:
我是 Selenium webdriver 的新手。我编写了这段代码来找出导航命令,但是一旦浏览器打开,就会显示一个登录弹出窗口。我尝试使用类名或 xpath 关闭它,但发生超时异常。
在这种情况下我需要使用显式等待吗?你能帮我找出问题所在吗?
public class TestNavigateCommands {
WebDriver driver;
public void invokeBrowser(){
try {
System.setProperty("webdriver.chrome.driver", "/Users/himaja/Documents/chromedriver");
ChromeOptions options=new ChromeOptions();
options.addArguments("start-fullscreen");
driver=new ChromeDriver(options);
driver.manage().deleteAllCookies();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
navigateCommands();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void navigateCommands(){
try {
driver.navigate().to("https://www.flipkart.com/");
Thread.sleep(4000);
driver.findElement(By.className("2AkmmA _29YdH8")).click();
//driver.findElement(By.xpath("//*[@class='_2AkmmA _29YdH8']")).click();
driver.findElement(By.xpath("//span[starts-with(text(),'Applicances')]")).click();
driver.findElement(By.xpath("//span[contains(text(),'Microwave Ovens')]")).click();
Thread.sleep(2000);
driver.navigate().back();
Thread.sleep(2000);
driver.navigate().forward();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TestNavigateCommands test1= new TestNavigateCommands();
test1.invokeBrowser();
}
}
例外:
[43.366][SEVERE]:从渲染器接收消息超时:37.150 [43.373][严重]:从渲染器接收消息超时:-0.007 org.openqa.selenium.TimeoutException: 超时
【问题讨论】:
-
嗨 Himaja :) 你说的“没用”是什么意思?什么都没有发生?你有例外吗?屏幕上会弹出一只狗的 gif 并嘲笑你吗?
-
我得到了超时异常。弹出窗口未关闭,其他功能未执行。
-
您可以在您的问题中添加超时异常吗?这可能包含一些有价值的调试信息。
-
@Himaja,请更新您的 chromedriver 版本并重试
-
你能用完整的错误堆栈跟踪和你看到异常的行来更新问题吗?