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

优点

  1. 简化代码
  2. pytest配置文件
  3. 已自动添加隐形等待,无须再添加"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。

 

 


 
 
 

 

posted @ 2022-07-26 19:07  walkerpython  阅读(892)  评论(0编辑  收藏  举报