conftest.py 封装公共的driver对象实现调用driver对象自动识别本地chrome版本自动下载driver,免除自己手动下载匹配的问题。代码适配无头浏览器自动识别是否是linux,从而使用无头浏览器和selenium grid

This commit is contained in:
caiweichao 2022-06-06 23:15:34 +08:00
parent c4827a1e1a
commit 0bfdf004e9
1 changed files with 44 additions and 1 deletions

View File

@ -2,11 +2,18 @@
# @Author : caiweichao
# @explain : 测试夹具
import pymysql
import platform
import pytest
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from webdriver_manager.chrome import ChromeDriverManager
from Commons.operation_file.operation_ymal import ReadYaml
user = ReadYaml().get_every_config("Account")
conf = ReadYaml().get_every_config("Config")
def pytest_collection_modifyitems(items):
"""
@ -17,3 +24,39 @@ def pytest_collection_modifyitems(items):
item.name = item.name.encode("utf-8").decode("unicode_escape")
item._nodeid = item.nodeid.encode("utf-8").decode("unicode_escape")
# 代码提取
def get_drvier(model=None):
# def get_drvier(model="debug"):
global driver
# 判断系统是否是linux如果是就返回true
ishandless = True if platform.system() == 'Linux' else False
# 服务器使用或者远程调试
if model == "debug" or ishandless:
option = webdriver.ChromeOptions()
option.add_argument('--headless')
option.add_argument('--no-sandbox')
option.add_argument('--disable-gpu')
option.add_argument('--disable-dev-shm-usage')
option.add_argument('--hide-scrollbars')
option.add_argument('--window-size=1920,1080')
option.add_experimental_option('useAutomationExtension', False)
option.add_experimental_option('excludeSwitches', ['enable-automation'])
# command_executor 填写自己的grid地址
driver = webdriver.Remote(command_executor='',
desired_capabilities=DesiredCapabilities.CHROME, options=option)
driver.implicitly_wait(conf.get("ALL_TIMEOUT"))
# 本地调试使用
else:
path = ChromeDriverManager(cache_valid_range=7).install()
driver = webdriver.Chrome(executable_path=path)
driver.maximize_window()
return driver
@pytest.fixture(scope='session')
def kill_driver():
yield None
driver.close()
driver.quit()
# os.system("ps aux | grep chromedriver | grep -v grep | awk '{print $2}' | xargs kill -9")