我正在使用 Selenium ChromeDriver 针对网页上的表单执行自动化测试。 当我单击表单上的“提交”按钮时,我的 WebDriver 失去与浏览器/页面/组件等的连接。针对页面对象或浏览器的任何后续操作都会导致超时,因为它不再具有连接。 就好像提交导致底层连接中断一样。
这是我收到的错误,无论我尝试单击页面对象、操作浏览器、读取任何属性等,这都是类似的错误。
向远程 WebDriver 服务器发送 URL 的 HTTP 请求:
http://localhost:5621/session/270f189e4b90085032409e475c3a3079/url 60 秒后超时。
其他信息:位于 System.Net.HttpWebRequest.GetResponse() 在 OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo 请求信息)
有没有办法重新建立(刷新)Selenium WebDriver 连接或最佳选择,以防止连接断开? Web 应用程序开发人员表示,他们不知道应用程序将执行的任何操作会导致此问题。
代码没有什么特别之处——与我执行数百次测试的代码相同。 提交按钮.Click();其中,submitButton 使用 css 定位器。 同样,我根本无法再操作任何页面对象,就好像浏览器已关闭,即使它仍然处于打开状态。
代码是一个简单的按钮点击
driver.FindElement(By.Id("btnLogin")).Click();
就我而言,我的按钮类型是“提交”,而不是按钮。 我不知道它会导致页面和页面对象的所有连接都丢失的原因,但修复方法是将 .Click() 更改为 .Submit()。
更改此行
driver.FindElement(By.Id("btnLogin")).Click();
到
driver.FindElement(By.Id("btnLogin")).Submit();
似乎您应该在 Click() 上得到 Selenium 异常,而不是无法访问任何内容,但这使其正确执行。
当 selenium 自动化代码点击我的工作开发网站的一个元素时,Selenium 和控制浏览器的 Web 驱动程序之间的连接丢失,最终导致之后所有剩余测试失败。
查看 URL 后,我发现出于某种未知原因添加了“//”。将其修改为“/”解决了我的问题。
我的工作网址(有错误):https://workdevurl.com.sa:81//CaseCustom.aspx?id=1359&formId=4206&ccf=96352
我的工作网址(更正后):https://workdevurl.com.sa:81/CaseCustom.aspx?id=1359&formId=4206&ccf=96352