我需要关闭一个对话框,该对话框是在我通过单击“Ok”选择“Save”之后弹出的,但是在弹出后右击可以检查页面上的任何元素和对话框(尝试过的F12不起作用)。
或者,可以给出关闭对话框的enter键,但是我无法发送如下所示的enter键。
Actions action = new Actions(driver); //attempt 1
action.sendKeys(Keys.RETURN);
action.sendKeys(Keys.RETURN).perform(); //attempt 2这两个操作都不会关闭对话框。我也做过司机的换档。除了弹出对话框外,还有一个outlook电子邮件弹出,这会不会在识别警报弹出时产生问题?请告知如何传递enter键以关闭对话框。
发现问题时,是由于Thread.sleep(3000)点击后使用的,猜测这会导致它无法识别警报。我可能也很担心。谢谢你的帮助!
发布于 2018-04-03 10:42:59
由于没有一个元素可以通过右键单击弹出后进行检查,这表明它是一个警报,这是Javascript生成的,您可以使用以下代码行:
Alert myAlert = new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());
myAlert.accept();更新A
根据评论的最新情况:
更新B
根据评论的最新情况:
window_handles开放,把它们当作window_handles。发布于 2018-04-03 10:47:28
解决方案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();在这两种情况下,请使用“等待”,直到收到警报为止。
发布于 2018-04-03 11:44:23
首先,选中在单击“Ok”之后弹出的对话框,是JavaScript警报还是其他什么?
如果对话框是JavaScript警报,那么尝试下面的代码。
new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());
Alert alert = driver.switchTo().alert();
alert.accept();https://stackoverflow.com/questions/49627973
复制相似问题