Selenium .NET HtmlUnitDriver 无法连接到远程服务器
Selenium .NET HtmlUnitDriver failed to connect to remote server
我正在将一些 Selenium JUnit 测试移植到 .NET 项目(针对 MVC 项目的测试)。
我在 Java 中有以下行:
WebDriver driver = new HtmlUnitDriver();
我把它移植到 .NET 是这样的:
IWebDriver driver = new RemoteWebDriver(DesiredCapabilities.HtmlUnit());
在 Java 中,这非常适合测试 Spring 应用程序,但在 .NET 中它会抛出异常:
Test method TDD.Tests.Acceptatie.TestLoginScreen.LoginScreenTest threw exception:
OpenQA.Selenium.WebDriverException: Unexpected error.
System.Net.WebException: Can't connect to remote server --->
System.Net.Sockets.SocketException:
Can't connect because target computer actively refused the connection 127.0.0.1:4444
注意:错误消息是从荷兰语翻译而来的,因此可能不是准确的英文消息。
我添加了 Selenium.Webdriver NuGet 包。项目结构如下:
- MVC 项目 (TDD)
- NUnit 项目 (TDD.Tests) 引用了 TDD
MVC 项目在 localhost:8080 上配置为 运行,我还尝试将 webdriver 设置为该 ip:
IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:8080"), DesiredCapabilities.HtmlUnit());
我也试过用环回地址代替'localhost'。
版本:
任何人都知道什么可能导致这个问题以及如何解决这个问题?
提前致谢!
调用 RemoteWebDriver Class 的语法如下:
public RemoteWebDriver(Uri remoteAddress, ICapabilities desiredCapabilities)
where:
remoteAddress
Type: System.Uri
URI containing the address of the WebDriver remote server (e.g. http://127.0.0.1:4444/wd/hub).
desiredCapabilities
Type: OpenQA.Selenium.ICapabilities
An ICapabilities object containing the desired capabilities of the browser.
根据错误...
OpenQA.Selenium.WebDriverException: Unexpected error.
System.Net.WebException: Can't connect to remote server --->
System.Net.Sockets.SocketException:
Can't connect because target computer actively refused the connection 127.0.0.1:4444
您的 program/script 似乎无法连接到 WebDriver 远程服务器。
根据您的第二次代码试验,http://localhost:8080 是您的 Application Server 但不是 WebDriver Remote服务器 例如Selenium Grid Hub
。因此您的程序显示错误。如果您使用的是 Selenium Grid,请将行更改为:
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), DesiredCapabilities.HtmlUnit());
最后,快速浏览 API 文档 of Inheritance Hierarchy of OpenQA.Selenium.Remote.RemoteWebDriver 显示以下内容HtmlUnit
不存在的层次结构:
然而,根据讨论 Is there an HtmlUnitDriver for .NET?,您的第一次代码试用应该已经成功:
IWebDriver driver = new RemoteWebDriver(DesiredCapabilities.HtmlUnit());
如果您想使用 Firefox 实现,您可以:
IWebDriver driver = new RemoteWebDriver(DesiredCapabilities.HtmlUnitWithJavaScript());
TL;DR
我正在将一些 Selenium JUnit 测试移植到 .NET 项目(针对 MVC 项目的测试)。
我在 Java 中有以下行:
WebDriver driver = new HtmlUnitDriver();
我把它移植到 .NET 是这样的:
IWebDriver driver = new RemoteWebDriver(DesiredCapabilities.HtmlUnit());
在 Java 中,这非常适合测试 Spring 应用程序,但在 .NET 中它会抛出异常:
Test method TDD.Tests.Acceptatie.TestLoginScreen.LoginScreenTest threw exception:
OpenQA.Selenium.WebDriverException: Unexpected error.
System.Net.WebException: Can't connect to remote server --->
System.Net.Sockets.SocketException:
Can't connect because target computer actively refused the connection 127.0.0.1:4444
注意:错误消息是从荷兰语翻译而来的,因此可能不是准确的英文消息。
我添加了 Selenium.Webdriver NuGet 包。项目结构如下:
- MVC 项目 (TDD)
- NUnit 项目 (TDD.Tests) 引用了 TDD
MVC 项目在 localhost:8080 上配置为 运行,我还尝试将 webdriver 设置为该 ip:
IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:8080"), DesiredCapabilities.HtmlUnit());
我也试过用环回地址代替'localhost'。
版本:
任何人都知道什么可能导致这个问题以及如何解决这个问题?
提前致谢!
调用 RemoteWebDriver Class 的语法如下:
public RemoteWebDriver(Uri remoteAddress, ICapabilities desiredCapabilities)
where:
remoteAddress
Type: System.Uri
URI containing the address of the WebDriver remote server (e.g. http://127.0.0.1:4444/wd/hub).
desiredCapabilities
Type: OpenQA.Selenium.ICapabilities
An ICapabilities object containing the desired capabilities of the browser.
根据错误...
OpenQA.Selenium.WebDriverException: Unexpected error.
System.Net.WebException: Can't connect to remote server --->
System.Net.Sockets.SocketException:
Can't connect because target computer actively refused the connection 127.0.0.1:4444
您的 program/script 似乎无法连接到 WebDriver 远程服务器。
根据您的第二次代码试验,http://localhost:8080 是您的 Application Server 但不是 WebDriver Remote服务器 例如Selenium Grid Hub
。因此您的程序显示错误。如果您使用的是 Selenium Grid,请将行更改为:
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), DesiredCapabilities.HtmlUnit());
最后,快速浏览 API 文档 of Inheritance Hierarchy of OpenQA.Selenium.Remote.RemoteWebDriver 显示以下内容HtmlUnit
不存在的层次结构:
然而,根据讨论 Is there an HtmlUnitDriver for .NET?,您的第一次代码试用应该已经成功:
IWebDriver driver = new RemoteWebDriver(DesiredCapabilities.HtmlUnit());
如果您想使用 Firefox 实现,您可以:
IWebDriver driver = new RemoteWebDriver(DesiredCapabilities.HtmlUnitWithJavaScript());