conftest.py 封装公共的driver对象实现调用driver对象自动识别本地chrome版本自动下载driver,免除自己手动下载匹配的问题。代码适配无头浏览器自动识别是否是linux,从而使用无头浏览器和selenium grid
This commit is contained in:
parent
c4827a1e1a
commit
0bfdf004e9
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue