首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当禁用页面上的元素时,Selenium Java Chrome发送enter键

问当禁用页面上的元素时,Selenium Java Chrome发送enter键
EN

Stack Overflow用户
提问于 2018-04-03 10:37:58
回答 3查看 808关注 0票数 2

我需要关闭一个对话框,该对话框是在我通过单击“Ok”选择“Save”之后弹出的,但是在弹出后右击可以检查页面上的任何元素和对话框(尝试过的F12不起作用)。

或者,可以给出关闭对话框的enter键,但是我无法发送如下所示的enter键。

代码语言:javascript
复制
Actions action = new Actions(driver); //attempt 1
action.sendKeys(Keys.RETURN);
action.sendKeys(Keys.RETURN).perform(); //attempt 2

这两个操作都不会关闭对话框。我也做过司机的换档。除了弹出对话框外,还有一个outlook电子邮件弹出,这会不会在识别警报弹出时产生问题?请告知如何传递enter键以关闭对话框。

发现问题时,是由于Thread.sleep(3000)点击后使用的,猜测这会导致它无法识别警报。我可能也很担心。谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-03 10:42:59

由于没有一个元素可以通过右键单击弹出后进行检查,这表明它是一个警报,这是Javascript生成的,您可以使用以下代码行:

代码语言:javascript
复制
Alert myAlert = new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());
myAlert.accept();

更新A

根据评论的最新情况:

  • 观察:除了警告消息,还有outlook邮件也会弹出
  • 结论:如果outlook邮件可能会弹出,就不会像怀疑的那样发出警报。您应该能够跟踪HTML中的元素。

更新B

根据评论的最新情况:

  • 注意:当我单击“Save”时会发生两件事: 1: Outlook电子邮件弹出2:保存页面上的警报通知,说明正在更新记录。
  • 结论:听起来像是两个window_handles开放,把它们当作window_handles。
票数 2
EN

Stack Overflow用户

发布于 2018-04-03 10:47:28

解决方案1:尝试切换到弹出并处理它。

代码语言:javascript
复制
new WebDriverWait(driver, 15).until(ExpectedConditions.alertIsPresent());
driver.switchTo().alert().accept();

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

代码语言:javascript
复制
Actions action = new Actions(driver);
new WebDriverWait(driver, 15).until(ExpectedConditions.alertIsPresent());
action.sendKeys(Keys.RETURN).perform();

在这两种情况下,请使用“等待”,直到收到警报为止。

票数 1
EN

Stack Overflow用户

发布于 2018-04-03 11:44:23

首先,选中在单击“Ok”之后弹出的对话框,是JavaScript警报还是其他什么?

如果对话框是JavaScript警报,那么尝试下面的代码。

代码语言:javascript
复制
new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());

Alert alert = driver.switchTo().alert();
alert.accept();
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49627973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档