seleniumbase安装及配置
原文链接:https://blog.csdn.net/weixin_45451320/article/details/122931282
为什么学seleniumbase?
想找一款基于pytest封装的UI自动化框架,github搜到这个2.6星
简称sbase,是Web 和移动 E2E UI 测试的完整测试自动化框架,推荐理由:github2.5k的pytest+unittest+selenium的成熟框架
在核心,SeleniumBase的工作原理是将pytest扩展为直接插件,SeleniumBase会自动启动Web浏览器进行测试(使用SeleniumWebDriver),
然后通过 BaseCase 类 向这些测试提供对 SeleniumBase 库的访问权限。测试还可以访问 SeleniumBase 命令行参数和 SeleniumBase 方法,它们提供了额外的功能。
我们主要是用已经封装好的 seleniumbase的方法、命令行参数,简化了代码,非常方便,主要用于迭代开发中的快速回归测试、包括各浏览器兼容性测试
中文文档:https://seleniumbase.io/help_docs/chinese/
github地址:https://github.com/seleniumbase/SeleniumBase
优点
- 简化代码
- pytest配置文件
- 已自动添加隐形等待,无须再添加"time.sleep()"
命令总结
命令总结
1
常用语法格式
1、直接继承BaseCase示例:pytest test_demo_site.py
from seleniumbase import BaseCase class DemoSiteTests(BaseCase): def test_demo_site(self): self.open("https://seleniumbase.io/demo_page") # Assert the title of the current web page self.assert_title("Web Testing Page") # Assert that the element is visible on the page self.assert_element("tbody#tbodyId") # Assert that the text appears within a given element self.assert_text("Demo Page", "h1")
搭建seleniumbase 环境
linux 搭建 虚拟环境 并切换
python3 -m venv sbase_env
source sbase_env/bin/activate
windows 新建虚拟并切换
py -m venv sbase_env
call sbase_env\\Scripts\\activate
要退出虚拟环境,请键入 deactivate
。
直接安装
pip install seleniumbase
seleniumbase
要从PyPI升级现有安装:
pip install -U seleniumbase
2 要运行 Web 自动化,您需要为您计划使用的每个浏览器提供 Web 驱动程序。安装 SeleniumBase 后,这里有一些命令会自动将您需要的驱动程序下载到 SeleniumBasedrivers
文件夹中
sbase install chromedriver
sbase install geckodriver
sbase install edgedriver
sbase install iedriver
sbase install operadriver
- 如果您安装了最新版本的 Chrome,请获取最新的 chromedriver(否则出于兼容性原因,它默认为 chromedriver 72.0.3626.69):
sbase install chromedriver latest
特定版本的 Chrome 安装特定版本的 chromedrive
sbase install chromedriver 102.0.5005.61
sbase install chromedriver 102
验证 ChromeDriver¶ python >>> from selenium import webdriver >>> driver = webdriver.Chrome() >>> driver.get("https://www.google.com/chrome") >>> driver.quit() >>> exit() 验证 Geckodriver (Firefox WebDriver)¶ python >>> from selenium import webdriver >>> driver = webdriver.Firefox() >>> driver.get("https://www.mozilla.org/firefox") >>> driver.quit() >>> exit()
SeleniumBase 的核心是通过将pytest扩展为直接插件来工作。SeleniumBase 自动启动 Web 浏览器进行测试(使用 Selenium WebDriver),然后通过BaseCase 类让这些测试访问 SeleniumBase 库。测试还可以访问SeleniumBase 命令行参数和SeleniumBase 方法,它们提供了额外的功能。 (注意:pytest 使用称为测试发现的功能test_从您在命令行中指定的文件中自动查找并运行以“”开头的 Python 方法。) 使用 SeleniumBase 最常见的方式是继承 BaseCase: from seleniumbase import BaseCase 然后让您的测试类继承 BaseCase: class MyTestClass(BaseCase):
pip install seleniumbase 添加 --upgrade或-U来更新安装程序。 添加 --force-reinstall更新依赖包
如果没有指定版本,则默认运行的浏览器驱动为 chromedriver,使用指定版本的命令为:--browser=BROWSER.
Linux中--headless为默认值(无界面运行)。你也可以在任何系统中运行无界面模式。如果你的 Linux 服务器有 GUI 界面,你也需要在界面中查看浏览器运行示例的过程,你可以添加--headed或--gui
自动化 WebDriver 技能: SeleniumBase 自动化控制WebDriver 网页浏览器(浏览器),在运行失败后进行截图保存。(了解更多关于定制的启动测试用例。) 简易的代码: SeleniumBase 使用简单粗暴的语法,例如: self.type("input", "dogs\n") 类似的代码在 Webdriver 中变现的不是特别好:(而且下面的代码不包含 SeleniumBase 上面的智能等待。) from selenium.webdriver.common.by import By element = self.driver.find_element(by=By.CSS_SELECTOR, value="input") element.clear() element.send_keys("dogs") element.submit() 如你所见,在 WebDriver 中同样的事情并不如 SeleniumBase!使用 SeleniumBase 让你的用例非常简单!(你可以在你的代码中一直使用self.driver。)