【发布时间】:2019-09-25 19:53:21
【问题描述】:
我有一个包装器来处理在浏览器中被点击的元素(它包含WebDriverWait)。最后一步是 element.Click()。此代码在测试期间成功用于多个元素,但是,当单击转换到另一个页面的标签时,IE 驱动程序会抛出此异常:
“OpenQA.Selenium.WebDriverException”类型的异常发生在 WebDriver.dll 但未在用户代码中处理
附加信息:对远程 WebDriver 的 HTTP 请求 URL 的服务器 http://localhost:52368/session/fa3cb036-bbff-45b7-b914-03ed03c86d9c/element/bc89665f-94c3-4829-beee-cff4a106cf87/click 60 秒后超时。
奇怪的是点击成功完成,页面转换发生了,但驱动程序似乎在该点击函数中寻找其他东西。内部异常是:
{“请求被中止:操作超时。”}
它的堆栈跟踪是:
在 OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo 请求信息)在 OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(命令 commandToExecute) 在 OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(命令 commandToExecute) 在 OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2 参数)在 OpenQA.Selenium.Remote.RemoteWebElement.Click()
我按照步骤设置 IE 11 here,并从 here 下载了 3.8 版本的驱动程序(能够在 32 位版本的 3.9 上重现)。
什么
【问题讨论】:
-
它正在导航的页面是否有 iframe?
-
@RyanWilson 它确实有 iframe,但为了清楚起见,我没有点击 iframe。
-
@mtheriault。我看过那篇文章,不幸的是,我无法将任何答案改编为 IE 并使其成功运行。我的问题有点不同,因为浏览器没有冻结并且预期的点击成功,但 Selenium 似乎并不相信这种情况。
-
@Kolichikov 可能是内置的 Selenium WebDriverWait 无法识别帧加载,或者它正在等待帧完全加载以评估为真。如果我是你,在这种情况下,我只会点击带有 javascript 注入器的链接,然后等到你需要在新页面上操作或评估的下一个元素存在。
标签: c# unit-testing selenium webdriver