如何创建 bash 脚本以在 python-behave 中执行非无头自动化
How to create a bash script to execute non-headless automation in python-behave
我几天前问过这个问题,但它被假设为错误地链接到上一个问题。这是 question.
其实解决方法很简单
我通过在非无头 bash 脚本中使用 export headless=0; behave
找到了一个变通方法并且它起作用了。
此方法的注意事项是我必须使用 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.")
我几天前问过这个问题,但它被假设为错误地链接到上一个问题。这是 question.
其实解决方法很简单
我通过在非无头 bash 脚本中使用 export headless=0; behave
找到了一个变通方法并且它起作用了。
此方法的注意事项是我必须使用 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.")