web-dev-qa-db-fra.com

Python Selenium Exception AttributeError: "L'objet 'Service' n'a pas d'attribut 'process'" dans Selenium.webdriver.ie.service.Service

J'ai un Selenium Python suite de tests. Il commence à fonctionner mais après quelques minutes l'erreur suivante est levée:

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

L'implémentation de ma suite de tests est:

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)

Quelqu'un peut-il expliquer pourquoi cette erreur empêche ma suite de tests de s'exécuter? Comment résoudre ce problème?

11
Riaz Ladhani

Si vous avez installé Selenium et en supposant que plus tôt dans le journal de suivi de la console, vous avez également obtenu quelque chose comme "l'exécutable" chromedriver "doit être dans PATH" dans votre script, vous devriez pouvoir faire:

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

Cela devrait indiquer à votre script où trouver chromedriver. Sur un Mac, vous pouvez généralement utiliser:/usr/local/bin/chromedriver

14
CubeBot88

Téléchargez le pilote chrome à partir de https://sites.google.com/a/chromium.org/chromedriver/downloads

Décompressez le fichier, puis à partir de votre code, écrivez quelque chose comme:

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

où/chemin/vers/chromedriver est l'emplacement de votre chromedriver.

Il s'agit de la déclaration de classe pour Chrome Webdriver: Selenium.webdriver.chrome.webdriver.WebDriver(executable_path='chromedriver', ...

extrait de https://seleniumhq.github.io/Selenium/docs/api/py/webdriver_chrome/Selenium.webdriver.chrome.webdriver.html#module-Selenium.webdriver.chrome.webdriver

2
Tarek Hoteit