Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebDriver不接受Chrome中的js警报_Java_Google Chrome_Selenium_Selenium Webdriver - Fatal编程技术网

Java WebDriver不接受Chrome中的js警报

Java WebDriver不接受Chrome中的js警报,java,google-chrome,selenium,selenium-webdriver,Java,Google Chrome,Selenium,Selenium Webdriver,我是webdriver的新手,从不同的博客学习了如何处理JS警报。我找不到解决问题的办法。实际上,当我准备在Firefox中接受js警报时,同样的代码可以正常工作,但一旦我将浏览器更改为Chrome浏览器,它就会引发异常,甚至在它不工作之前和之后,我都放置了等待驱动程序。我做错了什么 driver.findElement(By.xpath(".//*[xxxxxx]")).click(); wait.until(ExpectedConditions.alertIsPresent()); Ale

我是webdriver的新手,从不同的博客学习了如何处理JS警报。我找不到解决问题的办法。实际上,当我准备在Firefox中接受js警报时,同样的代码可以正常工作,但一旦我将浏览器更改为Chrome浏览器,它就会引发异常,甚至在它不工作之前和之后,我都放置了等待驱动程序。我做错了什么

driver.findElement(By.xpath(".//*[xxxxxx]")).click();
wait.until(ExpectedConditions.alertIsPresent());

Alert al = driver.switchTo().alert();
wait.until(ExpectedConditions.alertIsPresent());

String Alert1 = al.getText();

al.accept();

System.out.println(Alert1);

Assert.assertEquals(Alert1, "xxxxxxx");

在接受警报之前,先进行一个小线程睡眠

    Thread.sleep(100);
    driver.switchTo().alert().accept(); 

在接受警报之前,先进行一个小线程睡眠

    Thread.sleep(100);
    driver.switchTo().alert().accept(); 

最后我找到了罪魁祸首。
实际上,此警报在Iframe和主窗口中执行,Iframe URL彼此不同。一旦我进入那个URL和Iframe(警报)URL相同的页面,chrome就不会引发异常,同样的代码也可以正常工作

我终于找到了罪魁祸首。
实际上,此警报在Iframe和主窗口中执行,Iframe URL彼此不同。一旦我进入那个URL和Iframe(警报)URL相同的页面,chrome就不会引发异常,同样的代码也可以正常工作

您可以通过将ChromeDriver的版本更改为v2.18来解决此问题

我在尝试处理iframe中出现的警报时遇到了相同的错误。我最终将ChromeDriver的版本更改为v2.18,我的测试通过了

ChromeDriver的这个bug问题可能与您的问题有关。
此问题在ChromeDriver v2.19、v2.20和v2.21中发现。

您可以通过将ChromeDriver的版本更改为v2.18来解决此问题

我在尝试处理iframe中出现的警报时遇到了相同的错误。我最终将ChromeDriver的版本更改为v2.18,我的测试通过了

ChromeDriver的这个bug问题可能与您的问题有关。
此问题在ChromeDriver v2.19、v2.20和v2.21中发现。

您看到了什么异常?这里是异常。线程“main”org.openqa.selenium.WebDriverException中的异常:未知错误:无法从未知错误确定加载状态:未处理的检查器错误:{“code”:-32000,“message”:“内部错误:结果不是对象”}(会话信息:chrome=47.0.2526.106)(驱动程序信息:chromedriver=2.20.353145(343B531ED31EB933EC778DBCF7081628A1396067),平台=Windows NT 10.0 x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:78毫秒。请尝试使用Thread.sleep(3000);它在我的脚本中出现警报时效果很好。无论如何,这里您也可以尝试使用javascriptExecutor。您看到了什么异常?这里是异常。线程“main”org.openqa.selenium.WebDriverException中的异常:未知错误:无法从未知错误确定加载状态:未处理的检查器错误:{“code”:-32000,“message”:“内部错误:结果不是对象”}(会话信息:chrome=47.0.2526.106)(驱动程序信息:chromedriver=2.20.353145(343b531eeb933ec778dbcf7081628a1396067),platform=Windows NT 10.0 x8664)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:78毫秒。请尝试使用Thread.sleep(3000);它在我的脚本中出现警报时效果很好。无论如何,您也可以尝试使用javascriptExecutor。这在v.2.22中已修复-请参阅在v.2.22中已修复-请参阅