我正在尝试创建一个Selenium WebDriver程序来登录Facebook并执行一些操作,比如写一个状态。但每当我启动我的谷歌Chrome浏览器并登录到FB时,我都会收到一个允许通知弹出确认框,其中按钮的含义是允许和阻止(不是确定/取消)。
我尝试了Alert.dismiss方法,但它无法正常工作。我收到“没有这样的警告”错误,我的程序没有继续前进,因为我无法点击弹出窗口上的任何按钮使其消失。另外如何在Selenium WebDriver中处理一个弹出式确认框,该弹出式确认框有不同的按钮字样而不是OK / Cancel?请帮忙。 (无法添加通知弹出窗口的屏幕截图)
答案 0 :(得分:1)
我在Oodles Technologies工作期间学会了如何处理Silenium中的弹出窗口。我告诉你我是怎么做的。
在编写处理Alert消息的代码之前,我们需要定义一些包
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
void dismiss(): - 允许程序员点击“警报”框的“取消”按钮。 driver.switchTo()警报()驳回();
void accept(): - 允许程序员点击“警报”框的“确定”按钮。
driver.switchTo().alert().accept();
String getText(): - 它只是允许程序员捕获警报框。
driver.switchTo().alert().getText();
如何在Selenium WebDriver中处理弹出窗口
在编写代码来处理Popup窗口之前,我们需要在代码中编写一些包
import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.By;
Driver.getWindowHandles() :- It allow programmer to handle multiple number of popup windows
Driver.getWindowHandle() :- It Allow programmer to handle the main current window
答案 1 :(得分:0)
如果这是Chrome(内置)对话框,那么这将有效:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.onbeforeunload = function() {};");
我过去曾使用此功能来阻止“确认导航对话框”(当试图离开页面时)出现并且效果很好。
否则,请使用:
Driver.SwitchTo.Alert.Accept()