Я написал набор автоматизированных тестов на 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
, и он должен выполнить визуальную регрессию локально. Как я могу этого добиться?
behave
, а не Python. Я попробовалsys.argv
и все, что я получил сам файл. - person i_m_sanguine   schedule 09.04.2021export headless=0; behave
в скрипте без головы, и это сработало. Предостережение для этого метода заключается в том, что я должен использоватьos.getenv('headless')
, который ссылается на значение, установленное в моем файле .env. - person i_m_sanguine   schedule 14.04.2021