3

I tried setting up selenium's remote webdriver. On my remote machine selenium server is running and receiving the requests that I am hitting from my local. But in my local, why these errors are coming? No Idea

from selenium import webdriver
from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver import ChromeOptions
import os

chromedriver = '/Users/guru/Downloads/chromedriver'
os.environ["webdriver.chrome.driver"] = chromedriver
driver = RemoteWebDriver(
    command_executor='http://ec2-XXX-XXX-XXX-XXX.compute.com:4444/wd/hub',
    desired_capabilities=DesiredCapabilities.CHROME)

driver.get('http://voot.com')

why am i getting this error

Traceback (most recent call last):
  File "/Users/guru/python_projects/implement/a/format.py", line 11, in <module>
    desired_capabilities=DesiredCapabilities.CHROME)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session
    response = self.execute(Command.NEW_SESSION, capabilities)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/Users/guru/python_projects/implement/a/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
Stacktrace:
    at com.google.common.base.Preconditions.checkState (Preconditions.java:199)
    at org.openqa.selenium.remote.service.DriverService.findExecutable (DriverService.java:109)
    at org.openqa.selenium.chrome.ChromeDriverService.access$0 (ChromeDriverService.java:1)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable (ChromeDriverService.java:137)
    at org.openqa.selenium.remote.service.DriverService$Builder.build (DriverService.java:296)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService (ChromeDriverService.java:88)
    at org.openqa.selenium.chrome.ChromeDriver.<init> (ChromeDriver.java:138)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (None:-2)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance (None:-1)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (None:-1)
    at java.lang.reflect.Constructor.newInstance (None:-1)
    at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor (DefaultDriverProvider.java:103)
    at org.openqa.selenium.remote.server.DefaultDriverProvider.newInstance (DefaultDriverProvider.java:97)
    at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance (DefaultDriverFactory.java:60)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call (DefaultSession.java:222)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call (DefaultSession.java:1)
    at java.util.concurrent.FutureTask.run (None:-1)
    at org.openqa.selenium.remote.server.DefaultSession$1.run (DefaultSession.java:176)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (None:-1)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (None:-1)
    at java.lang.Thread.run (None:-1)

Process finished with exit code 1
prashantitis
  • 1,797
  • 3
  • 23
  • 52

1 Answers1

0

Set the following things on the remote machine on which you want to run the tests.

Set the chromedriver parent folder path to System PATH using following commands:

export PATH = /Users/prashant/Downloads/:$PATH   
echo $PATH

you should set the pat till .exe file as follows:

chromedriver = '/Users/guru/Downloads/chromedriver/chromedriver.exe'
os.environ["webdriver.chrome.driver"] = chromedriver
Naveen Kumar R B
  • 6,248
  • 5
  • 32
  • 65
  • I am on OSX, what extension should I use ? it should not be .exe – prashantitis Nov 18 '16 at 08:37
  • btw file info says, `chromedriver` is the name of the driver including extension – prashantitis Nov 18 '16 at 08:39
  • sure, the exception says "selenium.common.exceptions.WebDriverException: Message: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html Stacktrace:" – Naveen Kumar R B Nov 18 '16 at 08:42
  • are you sure os.environ is the way to set property in mac OS? – Naveen Kumar R B Nov 18 '16 at 08:43
  • what is the error that you got when you used full path of chromedriver? – Naveen Kumar R B Nov 18 '16 at 08:44
  • I was using full path only from beginning i.e.. `/Users/prashant/Downloads/chromedriver`, but I don't know `os.environ` is the correct way to set property in Mac – prashantitis Nov 18 '16 at 08:46
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/128427/discussion-between-naveen-and-guru). – Naveen Kumar R B Nov 18 '16 at 08:52