Python自动化测试工具-selenium
准备测试环境
使用selenium需要 python3 + selenium + chrome
前提条件
- Python3已安装
- 谷歌浏览器已安装
安装步骤
- 安装selenium
pip install selenium
- 安装 chrome driver
下载与谷歌浏览器对应的版本:
- 114之前版本下载地址: http://chromedriver.storage.googleapis.com/index.html
- 115版本之后下载地址: https://googlechromelabs.github.io/chrome-for-testing/#stable
- 国内镜像: https://registry.npmmirror.com/binary.html?path=chrome-for-testing/
谷歌浏览器版本版本 126.0.6478.62(正式版本) (64 位)
,可以下载对应文件/chrome-for-testing/126.0.6478.7/win64/chromedriver-win64.zip
,下载后可以解压到Python安装目录下
测试是否安装成功
# coding=utf8
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element(By.ID, "kw").send_keys("selenium")
driver.find_element(By.ID, "su").click()
time.sleep(3)
driver.quit()
注意: selenium 版本 4.21.0
在Selenium 4
之后的版本,原来的find_element_by_*
方法已被弃用,继续使用会报AttributeError
Selenium IDE
浏览器插件,方便录制操作。https://www.selenium.dev/selenium-ide/
常用元素定位
# 通过ID定位元素并点击
element_by_id = driver.find_element(By.ID, "element_id")
element_by_id.click()
# 通过Name定位元素并输入文本
element_by_name = driver.find_element(By.NAME, "element_name")
element_by_name.send_keys("Hello by Name")
# 通过Class Name定位元素并点击
element_by_class_name = driver.find_element(By.CLASS_NAME, "element_class")
element_by_class_name.click()
# 通过Tag Name定位元素并输入文本
element_by_tag_name = driver.find_element(By.TAG_NAME, "input")
element_by_tag_name.send_keys("Hello by Tag Name")
# 通过Link Text定位元素并点击
element_by_link_text = driver.find_element(By.LINK_TEXT, "Click Here")
element_by_link_text.click()
# 通过Partial Link Text定位元素并点击
element_by_partial_link_text = driver.find_element(By.PARTIAL_LINK_TEXT, "Click")
element_by_partial_link_text.click()
# 通过CSS Selector定位元素并点击
element_by_css_selector = driver.find_element(By.CSS_SELECTOR, ".class_name")
element_by_css_selector.click()
# 通过XPath定位元素并输入文本
element_by_xpath = driver.find_element(By.XPATH, "//input[@id='element_id']")
element_by_xpath.send_keys("Hello by XPath")
参考文档