解决selenium报错找不到chromedriver.exe文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31524409/article/details/88422148

我们在使用selenium框架编写自动化测试脚本时,即使本地已经安装了chromedriver.exe,也偶尔会遇到系统报错:找不到chromedriver.exe文件。这个时候我们首先要检查chromedriver.exe的版本是否与chrome浏览器的版本匹配,此外需要检查chromedriver.exe是否已经添加到环境变量中。当以上都没有问题的时候,我们可以采用以下的方法来解决此问题。

selenium自动化测试代码:

import unittest, time
from selenium import webdriver


class TestClass(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()
        self.base_url = "http://www.testclass.net"

    def tearDown(self):
        time.sleep(2)
        self.driver.quit()

    def test_case(self):
        self.driver.get(self.base_url)
        search_input = self.driver.find_element_by_id("wd")
        search_input.send_keys("selenium")
        search_input.submit()

    def test_case2(self):
        self.driver.get(self.base_url)
        search_input = self.driver.find_element_by_id("wd")
        search_input.send_keys("jenkins")
        search_input.submit()


if __name__ == '__main__':
    unittest.main()

错误信息如下所示:

Traceback (most recent call last):
  File "D:\software\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start
    stdin=PIPE)
  File "D:\software\Python\Python36-32\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "D:\software\Python\Python36-32\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:/test.py", line 8, in setUp
    self.driver = webdriver.Chrome()
  File "D:\software\Python\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 68, in __init__
    self.service.start()
  File "D:\software\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

上诉错误的两种解决方法:

一: 更改自动化测试代码的解释器project interpreter

二:1. 进入python文件夹下的lib\subprocess.py中进行修改(D:\software\Python\Python36-32\lib\subprocess.py)

        找到class Popen(),将def __init__()中的shell=False修改为shell=True

       2. 修改自动化测试代码:

 self.driver = webdriver.Chrome('C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe')
# webdriver.Chrome('chromedriver.exe文件位置')

猜你喜欢

转载自blog.csdn.net/qq_31524409/article/details/88422148