Web测试自动化工具Selenium的使用

Web测试自动化工具Selenium的使用

Selenium是一个Web应用测试的自动化工具,它通过模拟点击实现对Web应用的功能测试。测试时,除了Selenium,还需要对应的浏览器驱动,如在Chrome实现自动点击,则需要chromedriver。

Selenium支持多种语言和多种浏览器,本文仅记录python+chrome的使用。


1. 安装python

2. 安装Selenium
pip install selenium

注意:

  1. 若安装的Selenium版本>=4.6,Selenium会自动下载对应浏览器的驱动,无需手动下载。Selenium更新说明:Unable to Locate Driver Error
  2. 若Selenuim版本>=4.6,但是Selenium无法自动下载驱动,可以通过手动下载并配置驱动。
  3. 若Python版本低于3.10,可能出现Open SSL版本过低的问题(ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with XXX),网上很多解决方法都是下载Open SSL的源码去编译,也可以选择升级Python版本。
3. 下载chromedriver及配置(可选)
下载

chrome版本和chromedriver版本是一一对应的(并非严格对应,下载离chrome版本最近的chromedriver即可),在chrome浏览器访问chrome://version/可以查看chrome版本,然后在https://chromedriver.chromium.org/downloads下载跟chrome浏览器版本一致的chromedriver。

如果chrome是最新版本,对应版本的chromedriver可能并没有发布。如果chrome是最新版本,使用最新版本的chromedriver无法驱动chrome时,可以在https://googlechromelabs.github.io/chrome-for-testing/下载未正式发布的测试版chromedriver。

配置

将步骤3下载的压缩包解压,拿到chromedriver.exe。注意,很多教程会让你把chromedriver.exe放到Chrome安装目录下的Application文件夹中,并把Application文件夹的路径配置到环境变量path中。实际上,你放在任何一个目录都行,然后把这个目录添加到环境变量path即可。

如果你用PyCharm进行调试,可能碰到已经将chromedriver配置到环境变量中,但还是启动浏览器失败的情况,这可能是因为当前项目的虚拟环境中没有chromedriver(此时环境变量中的chromedriver并未起作用)。解决办法是将chromedriver复制到当前项目的虚拟环境中,虚拟环境路径可通过File -> Settings -> Project: [项目名称] -> Project Interpreter, 查看Project Interpreter的值获取。

4. 示例代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By

# 打开Chrome浏览器
driver = webdriver.Chrome()
# 最大化窗口
driver.maximize_window()
# 页面加载最长等待时间
driver.implicitly_wait(20)
# 打开网站
driver.get('http://www.baidu.com')
# 根据名称定位输入框,并输入内容到输入框
driver.find_element(By.NAME, "wd").send_keys("Selenium使用教程")
# 根据id定位”百度一下“按钮并点击
driver.find_element(By.ID, "su").click()

# 获取Action对象,模拟鼠标操作
actions = ActionChains(driver)
# 获取页面高度
check_height = driver.execute_script("return document.body.scrollHeight;")
print(check_height)
# 往下滚动一个页面的高度(模拟鼠标滚轮)
driver.execute_script("window.scrollBy(0,{})".format(check_height))
# 鼠标悬停
actions.move_to_element(driver.find_element(By.LINK_TEXT, "设置")).perform()
# 通过链接的文本定位元素并点击
driver.find_element(By.LINK_TEXT, "搜索设置").click()
# 通过xpath切换到”高级搜索“
driver.find_element(By.XPATH, "/html/body/div[3]/div[5]/div/div/ul/li[2]").click()
# 关闭弹窗
driver.find_element(By.XPATH,'//*[@id="wrapper"]/div[5]/span/i').click()
# 清空搜索栏内容
driver.find_element(By.NAME, "wd").clear()
# 向上滚动页面
driver.execute_script("window.scrollBy(0,{})".format(-check_height))
print(driver.current_url)
driver.find_element(By.NAME, "wd").send_keys("如何使用百度")
driver.find_element(By.ID, "su").click()
time.sleep(10)
# 关闭浏览器
driver.quit()
  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值