I wrote an automated test suite in Python, Selenium, and Behave. I am trying to execute my script with a bash file. The challenge here is that I want to create two separate scripts. One will run headless mode (build my docker file and run it headless in docker) while the other script will execute a non-headless one locally on my system> I was able to create the first one easily.
This is what I have done to my webconfig.py file.
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.")
I am yet to write the Firefox implementation but I felt with this, I should be able to create a bash script where I can specify that headless=False
and it should execute a visual regression locally. How can I achieve this?