.NET Core - Selenium RemoteWebDriver - PlatformNotSupportedException

时间:2017-11-01 18:48:16

标签: c# .net selenium .net-core

我正在尝试使用.net core 2xunit

运行Selenium测试

作为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

1 个答案:

答案 0 :(得分:3)

感谢this comment在github上发现了一个问题。

https://github.com/SeleniumHQ/selenium/issues/4770

此处描述了使用代码的变通方法: https://github.com/SeleniumHQ/selenium/issues/4770#issuecomment-337370420