selenium webdriver自动化测试启动不同浏览器
selenium webdriver 介绍
Selenium WebDriver 是 Selenium 项目中的一个核心组件,它提供了跨多种浏览器的自动化测试能力。Selenium WebDriver 旨在替代之前的 Selenium RC (Remote Control) 模型,为开发人员和测试人员提供了更简单、更高效的自动化测试解决方案。
Selenium WebDriver 主要特点如下:
-
跨浏览器支持:
Selenium WebDriver 支持主流浏览器,如 Chrome、Firefox、Safari、Edge 等,并且可以在不同的操作系统(Windows、macOS、Linux)上运行。 -
多语言支持:
Selenium WebDriver 提供了 Java、Python、C#、Ruby、JavaScript 等多种编程语言的 API,开发人员可以选择熟悉的语言来编写测试用例。 -
驱动程序架构:
Selenium WebDriver 采用驱动程序的架构,每种浏览器都需要对应的驱动程序(如 ChromeDriver、GeckoDriver 等)来控制浏览器的自动化操作。 -
API 丰富:
Selenium WebDriver 提供了大量的 API 供开发人员使用,可以执行各种Web元素定位、交互、导航、断言等操作。 -
灵活性和可扩展性:
Selenium WebDriver 可以集成到各种测试框架和持续集成工具中,如 JUnit、pytest、Jenkins 等,提高了测试的灵活性和可维护性。 -
支持无头浏览器:
Selenium WebDriver 除了支持传统的有界面浏览器,还支持无头浏览器(如 PhantomJS、Headless Chrome/Firefox),可以在无界面环境下进行自动化测试。
Selenium WebDriver 进行自动化测试的一般流程
- 安装并配置好对应浏览器的驱动程序。
- 使用 WebDriver API 创建浏览器实例,并打开待测试的网页。
- 定位页面元素,并对这些元素执行各种操作,如输入文本、点击按钮等。
- 对测试结果进行断言验证。
- 关闭浏览器实例,完成测试。
浏览器驱动下载
浏览器 | 驱动名称 | 备注 |
---|---|---|
Chrome | chromedriver | 浏览器版本需要和驱动版本对应 |
Firefox | geckodriver | 浏览器版本需要和驱动版本对应 |
Edge | edgedriver | 浏览器版本需要和驱动版本对应 |
IE | IEdriverServer | 浏览器版本需要和驱动版本对应 |
safari | safariDriver | 自带webdriver |
opera | operadriver | Opera基于Chromium开发 |
phantomjs | phantomjs | 无UI界面,2018年停止了开发和维护 |
浏览器驱动的安装
1.下载对应浏览器驱动成功后
2.以ubuntu 为例,将下载后的驱动移动到 /usr/local/bin/ 目录下
3.检查浏览器驱动与浏览器版本是否一致
可以双击驱动程序,未出现闪退证明版本吻合
chrome、edge、Firefox、Opera、Safari、phantomjs 应用
from selenium import webdriver
def test_webdriver():
driver = webdriver.Chrome()
# driver=webdriver.Edge()
# driver = webdriver.Firefox()
# driver = webdriver.Opera()
# driver = webdriver.Safari()
# driver = webdriver.PhantomJS()
# 需要访问的地址
driver.get("http://xxxx")
# 对页面进行操作
driver.find_element_by_xpath("//a[@id='LoginLink']").click()
# 运行结束关闭整个浏览器窗口
driver.close()
# 调用该函数
test_webdriver()
python xxxx.py 运行即可
Headless Chrome 、Headless Firefox 应用
Headless Chrome 是一种无界面的Chrome浏览器
Headless Firefox是一种无界面的Firefox浏览器
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.chrome.options import Options
def test_webdriver():
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
# driver = webdriver.Firefox(options=options)
# 需要访问的地址
driver.get("http://xxx")
# 对页面进行操作
driver.find_element_by_xpath("//a[@id='LoginLink']").click()
# 运行结束关闭整个浏览器窗口
driver.close()
# 调用该函数
test_webdriver()