如何使用phantomjs无头浏览器处理selenium中的警报

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用phantomjs无头浏览器处理selenium中的警报相关的知识,希望对你有一定的参考价值。

Selenium版本:3.4.0 phantomjs版本:2.1.1 java:1.8.0_151

我尝试了下面的东西,但它对我没有用。

在此处输入代码

1:

webDriver instanceof PhantomJSDriver){
              javascriptExecutor je = (JavascriptExecutor) driver;
              je.executeScript("window.alert = function(){};");
              je.executeScript("window.confirm = function(){return true;};");    
              System.out.println("Alert has been handled"); }
            else {
                  Alert a1 = driver.switchTo().alert();
                  a1.accept();  
              }

2:

      /*((PhantomJSDriver)driver).executeScript("window.alert = function(){}");
      ((PhantomJSDriver)driver).executeScript("window.confirm = function(){return true;}");*/

3:

      PhantomJSDriver phantom = (PhantomJSDriver) driver;
            phantom.executeScript("window.confirm = function(){return true;};");

4:

    ((JavascriptExecutor)driver).executeScript("window.alert = function(msg){};");
 ((JavascriptExecutor)driver).executeScript("window.confirm = function(msg){return true;};");

5 :

PhantomJSDriver phantom = (PhantomJSDriver)driver;
       phantom.executePhantomJS("var page = this;" +
               "page.onAlert = function(msg) {" +
                      "console.log('ALERT: ' + msg);" +
               "};");

       phantom.executePhantomJS("var page = this;" +
               "page.onConfirm = function(msg) {" +
                      "console.log('CONFIRM: ' + msg);"+ "return true;" +"};");

除了上面,请你建议吗?

答案

要在PhantomJS中处理警报,您必须等待警报出现,然后将WebDriver强制转换为JavascriptExecutor。您可以使用可以使用以下代码块:

((JavascriptExecutor) driver).executeScript("window.alert = function(msg){};");
//or
((JavascriptExecutor) driver).executeScript("window.confirm = function(msg){return true;};");
driver.findElement(By.id("element_which_trigers_the_alert")).click();

以上是关于如何使用phantomjs无头浏览器处理selenium中的警报的主要内容,如果未能解决你的问题,请参考以下文章

无头浏览器

运用 phantomjs 无头浏览器破解四种反爬虫技术

无头浏览器是啥?它有啥用?

如何使用无头浏览器运行测试?

爬虫之 图片懒加载, selenium , phantomJs, 谷歌无头浏览器

Python,PhantomJS 说我没有使用无头?