Selenium Java Chrome发送回车键,同时禁用页面上的元素

时间:2018-04-03 10:37:58

标签: java selenium selenium-chromedriver

我需要关闭一个对话框,在我选择' Save'之后弹出一个对话框。点击'确定'但是弹出后右键点击(F12没有帮助),可以检查页面和对话框中的任何元素都没有。

或者,要关闭对话框,可以输入密钥,但是我无法发送下面列出的回车键。

Actions action = new Actions(driver); //attempt 1
action.sendKeys(Keys.RETURN);
action.sendKeys(Keys.RETURN).perform(); //attempt 2

这两个操作都不会关闭对话框。我也执行了驱动开关。除了弹出对话框之外,还有Outlook电子邮件弹出窗口可能会在识别警报弹出窗口时产生问题吗?请告知如何传递回车键以关闭对话框。

发现问题,这是由于我在点击后使用的Thread.sleep(3000),猜测这导致它错过了被识别的警报。我也可能是狼人。谢谢你的帮助!

3 个答案:

答案 0 :(得分:2)

由于在弹出之后右键单击可以检查所有元素,这表明警告 Javascript 生成的警告您可以使用以下代码行:

Alert myAlert = new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());
myAlert.accept();

更新A

根据评论更新:

  • 观察:除警报消息外,还会弹出Outlook邮件

  • 结论:如果Outlook邮件弹出,可能不是警告。您应该能够跟踪HTML DOM中的元素。

更新B

根据评论更新:

  • 观察:当我点击“保存”时会发生两件事:[1]:Outlook电子邮件弹出窗口[2]:已保存页面上的警报通知,说明记录正在更新< / EM>

  • 结论:听起来有两个window_handles开放,将它们视为window_handles。

答案 1 :(得分:1)

解决方案1:尝试切换到弹出窗口并进行处理。

new WebDriverWait(driver, 15).until(ExpectedConditions.alertIsPresent());
driver.switchTo().alert().accept();

解决方案2:如果您想使用键盘键。

Actions action = new Actions(driver);
new WebDriverWait(driver, 15).until(ExpectedConditions.alertIsPresent());
action.sendKeys(Keys.RETURN).perform();

在这两种情况下,请使用等待&#39;直到你收到警报

答案 2 :(得分:-1)

首先,检查单击“确定”是JavaScript警报还是其他任何内容后弹出的对话框?

如果对话框是JavaScript Alert,请尝试以下代码。

name