Selenium webdriver 如何在selenium Java中单击弹出窗口

Selenium webdriver 如何在selenium Java中单击弹出窗口,selenium-webdriver,Selenium Webdriver,我是selenium的新手,尝试自动化(使用Java for Window中的selenium Webdriver和Chrome驱动程序)一个包含注册表单的应用程序(ABC项目) 填写表格并单击注册按钮后,我会收到一条弹出信息消息(模式),消息中有关闭(X)&确定按钮和标题:在ABC项目下,将显示以下信息和文本,通知用户注册成功 我尝试了几种方法单击此弹出窗口中的“确定”按钮,但没有成功: 1. Alert alert = driver.switchTo().alert();

我是selenium的新手,尝试自动化(使用Java for Window中的selenium Webdriver和Chrome驱动程序)一个包含注册表单的应用程序(ABC项目)

填写表格并单击注册按钮后,我会收到一条弹出信息消息(模式),消息中有关闭(X)&确定按钮和标题:在ABC项目下,将显示以下信息和文本,通知用户注册成功

我尝试了几种方法单击此弹出窗口中的“确定”按钮,但没有成功:

1. 

    Alert alert = driver.switchTo().alert();
                   alert.accept();

 2. 

    driver.findElement(By.xpath("//input[@value = 'alert']")).click();
               Alert javascriptAlert = myTestDriver.switchTo().alert();
               System.out.println(javascriptAlert.getText()); // Get text on alert box
               javascriptAlert.accept();
               ----> in this case I get only the text of the opened tab (from registration window: driver.getTitle();:ABC Project) but not the text of teh Info message(to see in logger.info) 

 3. 

    String winHandleBefore =   
        driver.getWindowHandle();
               driver.findElement(By.xpath("//div[@class='col-md-4']/button[1]")).click();
        // Xpath of register Button
               Set handles = driver.getWindowHandles();    ..... --->>, In this case, I don't get any Window Handler of new window the window handler from old and new are the same
附加提示:

  • 我也无法单击窗口中的任何其他位置来跳过弹出窗口
  • 在GoogleDeveloper工具中,我看不到任何源代码,也看不到弹出窗口中的任何元素(当弹出窗口出现时)
  • 我从开发者那里听说这个窗口是一个javascript,但我不知道 也可以查看源代码中的任何内容(它也不适用于解决方案b) (上图)
谢谢你给我的建议和支持
谢谢

发布的这张图片看起来像一个javascript警报

因此,下面的代码应该是有效的

Alert alert = driver.switchTo().alert();
alert.accept();
也许这是一个等待问题。试试看

Alert alert = new WebDriverWait(driver, 20).until(ExpectedConditions.alertIsPresent());
alert.accept();

你能发布一张警报的图片吗?我已经添加了dialog-thx的图片以供回复