Как создать bash-скрипт для выполнения безголового chromedriver python-behave

Я написал набор автоматизированных тестов на Python, Selenium и Behave. Я пытаюсь выполнить свой скрипт с файлом bash. Проблема здесь в том, что я хочу создать два отдельных сценария. Один будет запускать безголовый режим (создать мой файл докера и запустить его безголовым в докере), в то время как другой скрипт будет выполнять безголовый сценарий локально в моей системе. Я смог легко создать первый.

Это то, что я сделал с моим файлом webconfig.py.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


headless = True


class Driver:
    def __init__(self, driver):
        self.driver = driver
        if driver == "chrome":
            if headless:
                chrome_options = Options()
                chrome_options.add_argument("--headless")
                chrome_options.add_argument("--no-sandbox")
                chrome_options.add_argument("--disable-gpu")
                chrome_options.add_argument("--start-maximized")
                chrome_options.add_argument("--window-size=1920,1200")
                chrome_options.add_argument("--disable-dev-shm-usage")

                self.driver = webdriver.Chrome(chrome_options=chrome_options)
            else:
                self.driver = webdriver.Chrome()
        elif driver == "firefox":
            self.driver = webdriver.Firefox()
        else:
            print(f"{driver} is not defined.")

Мне еще предстоит написать реализацию Firefox, но я чувствовал, что с этим я должен создать сценарий bash, в котором я могу указать этот headless=False, и он должен выполнить визуальную регрессию локально. Как я могу этого добиться?


person i_m_sanguine    schedule 29.03.2021    source источник
comment
Это не отвечает на вопрос, команда выполнения для фреймворка поведения - behave, а не Python. Я попробовал sys.argv и все, что я получил сам файл.   -  person i_m_sanguine    schedule 09.04.2021
comment
Я нашел обходной путь, используя export headless=0; behave в скрипте без головы, и это сработало. Предостережение для этого метода заключается в том, что я должен использовать os.getenv('headless'), который ссылается на значение, установленное в моем файле .env.   -  person i_m_sanguine    schedule 14.04.2021