我正在尝试使用.net core 2
和xunit
作为Selenium服务器,我使用的是docker容器,如下所示: https://github.com/SeleniumHQ/docker-selenium
使用命令运行容器:
docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome
测试代码
public void Test()
{
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444"), new ChromeOptions());
driver.Navigate().GoToUrl("https://www.google.com");
var s = ((ITakesScreenshot)driver).GetScreenshot();
s.SaveAsFile("screen.jpg");
}
当我尝试运行测试时,我得到了异常:
System.PlatformNotSupportedException : Operation is not supported on this platform.
at System.Net.SystemWebProxy.GetProxy(Uri destination)
at System.Net.ServicePointManager.ProxyAddressIfNecessary(Uri& address, IWebProxy proxy)
at System.Net.ServicePointManager.FindServicePoint(Uri address, IWebProxy proxy)
at System.Net.HttpWebRequest.get_ServicePoint()
at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at Automation.LoginTests.Test() in C:\Git\Automation\test\Tests\LoginTests.cs:line 29
当我在linux(Debian 9)或Windows 10上运行时,结果相同。 难道我做错了什么? Selenium似乎能够支持.NET Core 2
答案 0 :(得分:3)
感谢this comment在github上发现了一个问题。
https://github.com/SeleniumHQ/selenium/issues/4770
此处描述了使用代码的变通方法: https://github.com/SeleniumHQ/selenium/issues/4770#issuecomment-337370420