简体   繁体   中英

Python Selenium Exception AttributeError: "'Service' object has no attribute 'process'" in selenium.webdriver.ie.service.Service

I have a Selenium Python test suite. It starts to run but after a few mins the following error is thrown:

Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.ie.service.Service object at 0x0000000002610DD8>> ignored

My test suite implementation is:

import unittest
from HTMLTestRunner2 import HTMLTestRunner
import os
import Regression_TestCase.RegressionProject_TestCase2


# get the directory path to output report file
#result_dir = os.getcwd()
result_dir = r"E:\test_runners\selenium_regression_test_5_1_1\ClearCore - Regression Test\TestReport"

# get all tests from SearchProductTest and HomePageTest class
search_tests = unittest.TestLoader().loadTestsFromTestCase(Regression_TestCase.RegressionProject_TestCase2.RegressionProject_TestCase2)

# create a test suite combining search_test
re_tests = unittest.TestSuite([search_tests])

# open the report file
outfile = open(result_dir + "\TestReport.html", "w")

# configure HTMLTestRunner options
runner = HTMLTestRunner.HTMLTestRunner(stream=outfile,
                                       title='Test Report',
                                       description='Smoke Tests')

# run the suite using HTMLTestRunner
runner.run(re_tests)

Can anyone help why this error is stopping my test suite from running? How do I solve this?

Provided you have installed selenium, and assuming that earlier in the console's traceback log you also got something like "'chromedriver' executable needs to be in PATH" in your script, you should be able to do:

from selenium import webdriver
driver = webdriver.Chrome("/path/to/chromedriver")

This should tell your script where to find chromedriver. On a Mac you can usually use: /usr/local/bin/chromedriver

Download chromium driver from https://sites.google.com/a/chromium.org/chromedriver/downloads

Unzip the file and then from your code, write something like:

     from selenium import webdriver 
     driver = webdriver.Chrome("/path/to/chromedriver")

where /path/to/chromedriver is the location of your chromedriver.

This is the class declaration for Chrome Webdriver: selenium.webdriver.chrome.webdriver.WebDriver(executable_path='chromedriver', ...

taken from https://seleniumhq.github.io/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.webdriver.html#module-selenium.webdriver.chrome.webdriver

Given what @CubeBot88 had already written, another way to get the chromedriver executable in PATH is to do as follow:

from os
from selenium import webdriver 
os.environ['PATH'] += "/path/to/chromedriver"
driver = webdriver.Chrome()

The above way puts the path to chromedriver to environment variable PATH only in this program, allowing independent PATH in different situations.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM