Selenium WebDriver 失去与网页的连接

问题描述 投票:0回答:2

我正在使用 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();

selenium selenium-webdriver selenium-chromedriver
2个回答
0
投票

就我而言,我的按钮类型是“提交”,而不是按钮。 我不知道它会导致页面和页面对象的所有连接都丢失的原因,但修复方法是将 .Click() 更改为 .Submit()。

更改此行

driver.FindElement(By.Id("btnLogin")).Click();

driver.FindElement(By.Id("btnLogin")).Submit();

似乎您应该在 Click() 上得到 Selenium 异常,而不是无法访问任何内容,但这使其正确执行。


0
投票

当 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

© www.soinside.com 2019 - 2024. All rights reserved.