PhantomJSDriver 接受警报

PhantomJSDriver Accept Alert

如何在 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();
}

您必须执行 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();
}

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

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

注意:- 不要在单击调用警报确认框的事件后使用它。 上面的代码默认将确认框设置为 true 意味着如果调用

,您在该页面上的所有确认框上 accepting/click 都正常

希望对您有所帮助:)