首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决预警关闭与document.readyState的同步

如何解决预警关闭与document.readyState的同步
EN

Stack Overflow用户
提问于 2017-05-10 04:20:47
回答 1查看 82关注 0票数 0

我有以下通用的VB代码:

*测试代码:调用Selenium SetKeys,在web表单上填充多个字段。

*测试代码:然后通过OnChange事件对Html input元素调用SetKeys。

* Selenium将值插入到文本框中。

* OnChange事件在调用Javascript函数时触发。

* JS函数显示报警或确认对话框。

*测试代码:从对话框获取文本:

DialogText = DriverObj.SwitchTo().Alert().Text

*测试代码:关闭对话框

代码语言:javascript
复制
DriverObj.SwitchTo().Alert().Accept()

()

*然后最终我调用Executescript:"return document.readyState“

我得到: OpenQA.Selenium.UnhandledAlertException:‘模式对话框呈现’

我正在调试模式下运行VB。所以我看到了这样的情况:

1)测试代码启动IE。

代码语言:javascript
复制
IE displayed as top window. 

2)测试代码在web表单中填写。

3)测试代码使用OnChange事件填充文本框。

4)代码在断点处停止。

代码语言:javascript
复制
Visual Studio now displayed as top window. 
代码语言:javascript
复制
IE displayed in background. 

5) DriverObj.SwitchTo().Alert().Text成功获取对话框文本。

6) DriverObj.SwitchTo().Alert().Accept()运行成功。

7)代码返回“ExecuteScript document.readyState”。

8)在VS窗口前面显示IE窗口。

9) IE中显示对话框。

10)代码执行返回“ExecuteScript document.readyState”。

11)代码显示异常: OpenQA.Selenium.UnhandledAlertException:‘模式对话框存在’。

在使用Accept()关闭DriverObj.SwitchTo()后,我尝试调用.Alert(),以确保对话框消失,但仍收到“Modal dialog present”异常。

在我调用'return document.readyState‘之前,我可以做些什么来确保IE已经完全完成了对话框的显示和关闭?

EN

回答 1

Stack Overflow用户

发布于 2017-05-10 04:29:09

在这种情况下,您可以尝试:

代码语言:javascript
复制
WebDriverWait wait = new WebDriverWait(driver, 30);
// Wait until alert is NOT present
wait.until(ExpectedConditions.not(ExpectedConditions.alertIsPresent()));
// OR Wait until number of windows is 1 i.e. main content
wait.until(ExpectedConditions.numberOfWindowsToBe(1));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43879163

复制
相关文章

相似问题

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