我需要关闭一个对话框,在我选择' Save'之后弹出一个对话框。点击'确定'但是弹出后右键点击(F12没有帮助),可以检查页面和对话框中的任何元素都没有。
或者,要关闭对话框,可以输入密钥,但是我无法发送下面列出的回车键。
Actions action = new Actions(driver); //attempt 1
action.sendKeys(Keys.RETURN);
action.sendKeys(Keys.RETURN).perform(); //attempt 2
这两个操作都不会关闭对话框。我也执行了驱动开关。除了弹出对话框之外,还有Outlook电子邮件弹出窗口可能会在识别警报弹出窗口时产生问题吗?请告知如何传递回车键以关闭对话框。
发现问题,这是由于我在点击后使用的Thread.sleep(3000),猜测这导致它错过了被识别的警报。我也可能是狼人。谢谢你的帮助!
答案 0 :(得分:2)
由于在弹出之后右键单击可以检查所有元素,这表明警告是 Javascript 生成的警告您可以使用以下代码行:
Alert myAlert = new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());
myAlert.accept();
根据评论更新:
观察:除警报消息外,还会弹出Outlook邮件
结论:如果Outlook邮件弹出,可能不是警告。您应该能够跟踪HTML DOM中的元素。
根据评论更新:
观察:当我点击“保存”时会发生两件事:[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