GIT+geckodriver+docker+selenium+python=автотест из под Гита , Прошу помочь настроить YML файл или конфиг самих тестов

neboXP

Новичок
Пользователь
Окт 22, 2020
1
0
1
Доброго времени форумчане, уже несколько дней бьюсь над на первый взгляд не сложной проблемой , имею ряд автотестов , без проблем запускающийся локально в фоновом режиме и из пейчарма и из командной строки. . Требуется перевести их на Гитлаб для автоматического запуска после деплоя новой версии программы , Но постоянно то на гекодрайвер ругается , то на отсутствие компонентов. Что имеем сейчас : докер и ранер настроенные на протокол Докер.Проект в Гите,Yml файл в корне проекта следующего вида :
image: python:3.7

services:
- name: docker:dind

stages:
- test
- deploy

test:
stage: test
tags:
- ATKG
script:
- apk update && apk add bash && apk add python3-pip
- apt-get update
- echo "Get geckodriver"
- wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
- tar -xvzf geckodriver-v0.26.0-linux64.tar.gz
- chmod +x geckodriver
- chmod u+s geckodriver
- apt --yes upgrade

- pip install -r Selenium_Python/requirements.txt
- pwd
- echo $executable_path
- PATH=$PATH:/builds/otspo/karat_test/geckodriver
- PATH=$PATH:/builds/otspo/karat_test/
- echo $PATH
- ls -l
- chmod +x geckodriver
- ls -l
- echo Start Testing
- python Object_category.py




staging:
stage: deploy
tags:
- ATKG
script:
- echo Building project
only:
- master
Ругается вот так :
Traceback (most recent call last):
214 File "Object_category.py", line 21, in <module>
215 driver = webdriver.Firefox(options=options, executable_path='geckodriver')
216 File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
217 keep_alive=True)
218 File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
219 self.start_session(capabilities, browser_profile)
220 File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
221 response = self.execute(Command.NEW_SESSION, parameters)
222 File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
223 self.error_handler.check_response(response)
224 File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
225 raise exception_class(message, screen, stacktrace)
226 selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities
шапка тестов выглядит вот так :
import unittest
import time
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.wait import WebDriverWait
import tracemalloc
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

tracemalloc.start()
options = Options()
options.headless = True
class test_karat_v_test_(unittest.TestCase):
def spy_str(self): # эта ф-я запускает тесты в фоновом режиме
options = Options()
options.headless = True

self.driver = webdriver.Firefox(options=options,executable_path='geckodriver')

print("Headless Firefox Initialized")

.....сами тесты ....
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities
Как исправить эту ошибку можете посмотреть тут: ссылка.
 

Форум IT Специалистов