【问题标题】:How to handle a pop up using selenium webdriver如何使用 selenium webdriver 处理弹出窗口
【发布时间】:2015-07-09 19:30:46
【问题描述】:

我正在使用 selenium webdriver 来自动化某些过程 在尝试刷新页面时,它会弹出一个窗口。 单击该弹出窗口中的“重试”按钮后,页面将刷新。 我想知道如何处理此弹出窗口以单击“重试”按钮。

我没有足够的声望点,无法发布图片。

更新:添加图片

【问题讨论】:

  • 你能把图片上传到外部网站吗?例如伊姆古尔?还有你用什么语言写的?
  • 是 javascript 弹出窗口还是浏览器身份验证/重新加载页面确认窗口之类的窗口?
  • 这是一个 javascript 弹出窗口。我正在用 Java 编写。
  • 请添加弹窗截图。使用图片托管网站。
  • 对不起 imgur.com/tEwpqPs

标签: testing selenium selenium-webdriver


【解决方案1】:

你可以试试发送键alert.sendKeys("13") 盲按Enter

Alert alert = driver.switchTo().alert();
alert.sendKeys("13");

还要确保 Selenium Web Driver 不想提前接受警报,通常的做法是像@workspace 所说的那样等待(几秒钟)。

不通过 selenium 调用操作的其他解决方法是重复它,直到它成功执行。当然有超时,例如 30 秒。

【讨论】:

    【解决方案2】:

    Selenium 的警报界面可能适合您的需求。

    这是一个示例用法,将 WebDriver 的焦点切换到警报,然后接受它。

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

    警报界面: http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/Alert.html

    【讨论】:

    • 我试过了。接受()和解雇()方法。它将返回到我开始测试的上一个登录屏幕
    • @Chetanj257:那么,它应该导航到哪里而不是之前的登录屏幕?
    • @Chetanj257 能否请您发布您的代码 sn-p ,您也可以尝试在 driver.switchTo().alert().accept() 之前休眠 5 秒;代码
    最近更新 更多