问题
I had set up Selenium Grid (Both Hub and Node) on my local machine which runs on Windows 10 using below command for registering Hub.
java -jar selenium-server-standalone-3.141.59.jar -role hub
and for registering a Node, I had used below command
java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://10.37.34.2:4444/grid/register -port 5454
On Command Prompt, it displayed that "The node is registered to the hub and ready to use"
Verified Grid Console as well at http://localhost:4444/grid/console. Everything looked fine.
When I executed a simple test case in visual studio, I saw the below error message.
Result Message:
System.InvalidOperationException : Unable to create new service: ChromeDriverService
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'PCD-F3FD2', ip: '10.37.34.2', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_172'
Driver info: driver.version: unknown (SessionNotCreated)
On the Hub Command Prompt, I can see
"20:47:46.539 INFO [RequestHandler.process] - Got a request to create a new session: Capabilities {browserName: chrome, goog:chromeOptions: {}, platformName: windows}
20:47:46.542 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=0c4146b1-d7d9-4f39-91ce-b30c57c53342, seleniumProtocol=WebDriver, browserName=chrome, maxInstances=5, platformName=WIN10, platform=WIN10}"
On the Node Command Prompt, I can see
20:47:46.601 INFO [ActiveSessionFactory.apply] - Capabilities are: {
"browserName": "chrome",
"goog:chromeOptions": {
},
"platformName": "windows"}
20:47:46.602 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.grid.session.remote.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Below is my C# code:
[Test]
public void AccessGoogle()
{
ChromeOptions options = new ChromeOptions();
options.BinaryLocation = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
options.PlatformName = PlatformType.Windows.ToString();
IWebDriver d = new RemoteWebDriver(new Uri("http://10.37.34.2:4444/wd/hub"), options.ToCapabilities());
d.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
d.Url = "https://www.google.com/";
}
Could you please help me to understand what went wrong?
I had tweaked my machines Firewall settings as well. But no luck!
回答1:
As you have set up Selenium Grid (Both Hub and Node) on your local machine, so while initializng the Selenium Grid Node you need to pass the absolute path of the ChromeDriver location through the Dwebdriver.chrome.driver
argument as follows:
java -Dwebdriver.chrome.driver=C:\path\to\chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://10.37.34.2:4444/grid/register -port 5454
来源:https://stackoverflow.com/questions/54947684/system-invalidoperationexception-unable-to-create-new-service-chromedriverser