我使用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实例。这种情况有没有解决方法?
谢谢你们的帮助。
答案 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),我猜这个问题是双重的:
请参阅我的more detailed StackOverflow answer有关所涉及的根本问题。解决问题:
在
中添加关闭stdout
和stderr
的来电
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