Почати тестування за допомогою Selenium та Python може стати важкою задачею, особливо, коли з’являються помилки, які перешкоджають запуску перших тестів. У цій статті ми розглянемо одну з таких проблем і запропонуємо шляхи її вирішення.
Однією з найпоширеніших проблем при спробі запустити тест на Selenium та Python є помилка, яка вказує на відсутність деякої конфігурації. Переглянемо кроки, які можуть призвести до цієї помилки і способи її вирішення:
1 2 3 4 5 6 7 8 9 10 11 |
-In a new folder I create a "main.py" file. -Created a new virtual environment through terminal using "python3 -m venv .venv" command -Clicked "Yes" on the "We noticed a new environment has been created. Do you want to use it" message on my IDE -Killed the terminal and executed the following code by running "python3 main.py" command from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome('./chromedriver') driver.get("https://www.python.org") print(driver.title) |
Після виконання цих кроків може з’явитися наступне повідомлення про помилку:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
% python main.py Traceback (most recent call last): File "/Users/xxxx/mechanized/.venv/lib/python3.11/site-packages/selenium/webdriver/common/driver_finder.py", line 38, in get_path path = SeleniumManager().driver_location(options) if path is None else path ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/xxxx/mechanized/.venv/lib/python3.11/site-packages/selenium/webdriver/common/selenium_manager.py", line 87, in driver_location browser = options.capabilities["browserName"] ^^^^^^^^^^^^^^^^^^^^ AttributeError: 'str' object has no attribute 'capabilities' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/xxxx/mechanized/main.py", line 4, in <module> driver = webdriver.Chrome('./chromedriver') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/xxxx/mechanized/.venv/lib/python3.11/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__ super().__init__( File "/Users/xxxx/mechanized/.venv/lib/python3.11/site-packages/selenium/webdriver/chromium/webdriver.py", line 49, in __init__ self.service.path = DriverFinder.get_path(self.service, options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/xxxx/mechanized/.venv/lib/python3.11/site-packages/selenium/webdriver/common/driver_finder.py", line 40, in get_path msg = f"Unable to obtain driver for {options.capabilities['browserName']} using Selenium Manager." ^^^^^^^^^^^^^^^^^^^^ AttributeError: 'str' object has no attribute 'capabilities' |
Ця помилка вказує на те, що в програмі відбулася помилка, пов’язана з відсутністю атрибута ‘capabilities’. Це може бути спричинено неправильною конфігурацією середовища або відсутністю необхідних драйверів. Для вирішення цієї проблеми варто виконати наступні дії:
Після виконання цих кроків, ви повинні бути здатні запустити тест успішно і уникнути помилки, пов’язаної з відсутністю атрибута ‘capabilities’.