@ENigma371

Где может быть ошибка в автотесте dockerfile?

Добрый день!
Есть автотест на python selenium который просто авторизовывается на сайте. При написания автотеста я не использовал бинарник chromedriver, а указал пакет webdriver_manager, все работает отлично

Если запускать в докере надо еще устанавливать сам хром, если нет то как будет совершаться имитация действий в контейнере если нет хрома
Сам код автотеста
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

#Ссылка на сайт где надо авторизоваться 
driver.get('url')

# Блок ввода логина
time.sleep(2)
loginbox = driver.find_element(By.XPATH, '//*[@id="UserName"]')
loginbox.clear()
loginbox.send_keys('login')

# Блок ввода пароля
time.sleep(1)
passbox = driver.find_element(By.XPATH, '//*[@id="Password"]')
passbox.clear()
passbox.send_keys('password')

# Нажатие кнопки войти
submit_button = driver.find_element(By.CSS_SELECTOR, 'input[type=submit]').click()

# После авторизации через 20сек закроется браузер
time.sleep(20)


dockerfile
FROM python:3.9-alpine
WORKDIR /autotest
COPY requirements.txt . .
RUN python -m pip install --upgrade pip
RUN pip install -r requirements.txt
CMD [ "python", "test1.py" ]


requirements.txt
selenium
webdriver_manager


При попытке запустить контейнер вылазит следующая ошибка

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 71, in start
    self.process = subprocess.Popen(cmd, env=self.env,
  File "/usr/local/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/local/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/root/.wdm/drivers/chromedriver/linux64/106.0.5249/chromedriver'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/autotest/test1.py", line 8, in <module>
    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
  File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__
    super().__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/chromium/webdriver.py", line 89, in __init__
    self.service.start()
  File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/common/service.py", line 81, in start
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы