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 都正常
希望对您有所帮助:)
如何在 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
意味着如果调用
希望对您有所帮助:)