如何创建bash脚本以在python中执行无头自动化

如何创建bash脚本以在python中执行无头自动化,python,bash,selenium,bdd,python-behave,Python,Bash,Selenium,Bdd,Python Behave,几天前我问过这个问题,但它是假设的,并且错误地与前面的一个问题联系在一起。这就是答案。解决方案其实很简单 我通过使用export headless=0找到了一个解决方法;在非headless bash脚本中表现出,它成功了 这个方法需要注意的是,我必须使用os.getenv('headless'),它引用了在.env文件中设置的值。那是无头=1 最终的webconfig.py如下所示 import dotenv import os from selenium import webdriver

几天前我问过这个问题,但它是假设的,并且错误地与前面的一个问题联系在一起。这就是答案。

解决方案其实很简单

我通过使用
export headless=0找到了一个解决方法;在非headless bash脚本中表现出
,它成功了

这个方法需要注意的是,我必须使用
os.getenv('headless')
,它引用了在.env文件中设置的值。那是无头=1

最终的webconfig.py如下所示

import dotenv

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

dotenv.load_dotenv()

headless = bool(int(os.getenv('headless')))


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.")