Java 在Selenium WebDriver中处理弹出窗口不会';行不通

Java 在Selenium WebDriver中处理弹出窗口不会';行不通,java,selenium,webdriver,selenium-webdriver,Java,Selenium,Webdriver,Selenium Webdriver,WebDriver启动浏览器并导航到URL并单击应用程序中的链接,然后会出现一个带有弹出窗口的新浏览器,在关闭弹出窗口之前,我们无法对浏览器进行任何控制 弹出窗口只有“确定”按钮。我尝试了switchTo(),窗口处理程序,但不起作用。此外,由于此弹出窗口阻塞,无法控制浏览器。切换到弹出窗口时,您必须提供窗口句柄,以便控制那里发生的事情。我使用这个类使来回切换更容易 这是C#: 然后在我的程序中,我会这样做: WindowManager windowManager = new WindowMan

WebDriver启动浏览器并导航到URL并单击应用程序中的链接,然后会出现一个带有弹出窗口的新浏览器,在关闭弹出窗口之前,我们无法对浏览器进行任何控制


弹出窗口只有“确定”按钮。我尝试了
switchTo()
,窗口处理程序,但不起作用。此外,由于此弹出窗口阻塞,无法控制浏览器。

切换到弹出窗口时,您必须提供窗口句柄,以便控制那里发生的事情。我使用这个类使来回切换更容易

这是C#:

然后在我的程序中,我会这样做:

WindowManager windowManager = new WindowManager();
windowManager.ParentWindowHandle = driver.CurrentWindowHandle;
//do stuff that opens the new window
//immediately switch focus to the popup so webdriver can work with the page
windowManager.SwitchWindowFocusToPopup(driver, "popup window title");

//do stuff with the popup

//close the popup
driver.Close();

//set the webdriver window back to the original parent window
driver.SwitchTo().Window(windowManager.ParentWindowHandle);`

发布代码和错误消息会有所帮助。请显示代码或屏幕截图。所谓“弹出窗口”,有些是指实际的浏览器窗口,有些是指iframe弹出窗口,有些是指HTML div弹出窗口,有些是指警报。你说的是哪一个?你用过
driver.switchTo().alert().accept()吗
WindowManager windowManager = new WindowManager();
windowManager.ParentWindowHandle = driver.CurrentWindowHandle;
//do stuff that opens the new window
//immediately switch focus to the popup so webdriver can work with the page
windowManager.SwitchWindowFocusToPopup(driver, "popup window title");

//do stuff with the popup

//close the popup
driver.Close();

//set the webdriver window back to the original parent window
driver.SwitchTo().Window(windowManager.ParentWindowHandle);`