【问题标题】:PhantomJSDriver Accept AlertPhantomJSDriver 接受警报
【发布时间】:2015-03-15 16:48:37
【问题描述】:

如何在 Java 中使用 PhantomJSDriver 接受警报?我正在尝试用 YouTube 做到这一点。我无法让它工作。

我尝试使用此代码在任何驱动程序上接受,但它不适用于 PhantomJS。

static void confirmDialog(WebDriver driver) {
    if (driver instanceof PhantomJSDriver) {
        PhantomJSDriver phantom = (PhantomJSDriver) driver;
        phantom.executeScript("window.confirm = function(){return true;}");
        phantom.executeScript("return window.confirm");
    } else driver.switchTo().alert().accept();
}

【问题讨论】:

    标签: java selenium phantomjs


    【解决方案1】:

    你必须执行 JS 来设置 window.alert 调用什么都不做。你可以使用这个方法。

    static void confirmDialog(WebDriver driver) {
        if (driver instanceof PhantomJSDriver) {
            PhantomJSDriver phantom = (PhantomJSDriver) driver;
            phantom.executeScript("window.alert = function(){}");
            phantom.executeScript("window.confirm = function(){return true;}");
        } else driver.switchTo().alert().accept();
    }
    

    【讨论】:

      【解决方案2】:

      JavascriptExecutor 为我工作。请注意您应该在单击调用警报的事件之前执行它。

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

      注意:- 在单击调用警报确认框的事件后不要使用它。 上述代码默认将确认框设置为true 表示您正在接受/如果被调用,则在该页面上的所有确认框上单击“确定”

      希望对你有帮助:)

      【讨论】:

        猜你喜欢
        • 2021-02-19
        • 1970-01-01
        • 1970-01-01
        • 2016-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多