ChromeDriver可执行文件需要在路径中可用

时间:2014-10-21 01:37:10

标签: python selenium selenium-webdriver selenium-chromedriver

我使用selenium webdriver python与unittest框架绑定。我重复时,我的测试开始失败。我的套件中有大约100个测试用例。

将它们循环三次后,会出现以下错误消息

Traceback (most recent call last):          
File "TestPlan.py", line 26, in setUp  
self.driver=self.OpenBrowser(self.configDic['BrowserOption='])
File "D:\AutoTest-Selenium\Controller.py", line 85, in OpenBrowser
File "C:\Python27\lib\selenium\webdriver\chrome\webdriver.py", line 59, in __init__   
WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.  
Please download from http://chromedriver.storage.googleapis.com/index.html               
and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'  

我的setUp类和tearDown方法如下:

def setUp(self):            
    self.driver=self.OpenBrowser(self.configDic['BrowserOption=']) 

def tearDown(self): 
    self.driver.quit()     

我还在我的任务管理器中找到了一些Chromedriver进程。这是错误消息显示的原因吗?我在使用它们之后一直注意关闭每个webdriver实例。这种情况有没有解决方法?

谢谢你们的帮助。

2 个答案:

答案 0 :(得分:1)

如果“ChromeDriver可执行文件需要在路径中可用。”错误在Ubuntu 12.04和Ubuntu 14.04上。

解决这个问题:

sudo -i
wget http://chromedriver.storage.googleapis.com/2.15/chromedriver_linux64.zip
unzip chromedriver_linux64.zip -d /usr/local/bin
chmod 755 /usr/local/bin/chromedriver

答案 1 :(得分:0)

由于您的问题和后来的评论表明您可以运行近300次测试(在您的PATH中证明chromedriver IS),我猜这个问题是双重的:

  1. selenium< = 2.44.0有一个错误隐藏了您的实际错误消息;也就是说,错误 ChromeDriver可执行文件需要在路径中可用是伪造的。
  2. 如果该错误不存在,它可能会告诉您打开的文件太多
  3. 请参阅我的more detailed StackOverflow answer有关所涉及的根本问题。解决问题:

    • 增加打开文件的最大数量 ...或...
    • 中添加关闭stdoutstderr的来电

      site-packages/selenium/webdriver/chrome/service.py

    try:
        if self.process:
            self.process.stdout.close()  # <-- add this line
            self.process.stderr.close()  # <-- and this one
            self.process.kill()
            self.process.wait()
    except OSError:
        # kill may not be available under windows environment
        pass