UI自动化测试-浏览器初始化操作
前言:最近在学习巩固一些pytest+selenium的测试框架中的知识点,把学习过程中一些常用的操作做一下分享。
废话不多说,直接上代码:
def initDriver(self):
# 加启动配置
try:
projectDir = os.path.dirname(__file__)[:-6]
downloadPath = projectDir + 'Download'
options = webdriver.ChromeOptions()
options.add_argument('disable-infobars')
options.add_argument('--lang=zh-CN')
# options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('window-size=1920x1080')
system = sys.platform
if 'win' in system:
driverPath = projectDir + 'driver/' + 'chromedriver.exe'
elif 'linux' in system:
driverPath = '/usr/bin/chromedriver'
else:
assert False, '其他运行环境需要进行配置!'
prefs = {"download.default_directory": downloadPath,
"profile.default_content_setting_values.automatic_downloads": 1,
"download.prompt_for_download": False,
"directory_upgrade": True,
"safebrowsing.enabled": True,
"profile.default_content_setting_values": {"notifications": 2}
}
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(driverPath, options=options)
driver.maximize_window()
generalFunction = GeneralFunction()
path = os.path.dirname(os.path.dirname(__file__)) + '/ConfigData/LoginData.yaml'
loginData = generalFunction.readYaml(path)
driver.get(loginData['baseUrl'])
driver.find_element(By.XPATH, "//input[@placeholder='请输入账号']").send_keys(loginData['username'])
driver.find_element(By.XPATH, "//input[@placeholder='请输入密码']").send_keys(loginData['password'])
driver.find_element(By.XPATH, "//button//span[contains(text(),'登 录')]").click()
time.sleep(10)
except Exception as Error:
assert False, '实例化浏览器失败,错误信息为:%s' % Error
else:
return driver
这里主要分享下chromeOptions的一些常用方法,chromeOptions 是一个配置 chrome 启动是属性的类,通过这个类,我们可以为chrome配置如下参数:
设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)
这个地方主要使用了options.add_argument(添加启动参数),初始化浏览器中常用的操作:
options.add_argument('--headless') #无头模式运行
options.add_argument('--disable-gpu') #设置没有使用gpu
options.add_argument('window-size=1920x1080') # 设置浏览器窗口大小
(注:推荐进行自动化测试时使用无头模式运行,无头模式下的测试速度通常比普通模式更快。这对于大规模测试或需要频繁执行的测试场景非常有利;同时不会弹出可见的浏览器窗口,可以在后台静默运行,防止在运行脚本的过程中误操作到浏览器,影响测试;使用Headless模式可以节省系统资源,提高性能和稳定性)
指定浏览器的默认下载目录(在自动化测试中涉及到下载文件、图片后的验证操作,指定文件路径后方便查找对应的文件)
projectDir = os.path.dirname(__file__)[:-6]
downloadPath = projectDir + 'Download'
prefs = {"download.default_directory": downloadPath,
"profile.default_content_setting_values.automatic_downloads": 1,
"download.prompt_for_download": False,
"directory_upgrade": True,
"safebrowsing.enabled": True,
"profile.default_content_setting_values": {"notifications": 2}
}
options.add_experimental_option('prefs', prefs) #添加实验设置参数
今天分享到这儿,存在不足的地方还请大家多多指教!!!