selenium 用于 web 应用程序的自动化测试工具, 支持多种浏览器, 多种脚本语言编写及录制的工具.
测试过程可以使用 python+selenium 进行做 UI 界面自动化, UI 界面自动化一个基础核心是元素定位.
selenium 提供了单元素定位和多元素定位, 2 种方式都有 8 种元素定位方式:
单元素定位方法:
find_element_by_id: 通过元素 id 属性定位 (find_elements_by_id: 多元素定位, 返回是列表定位位置, 默认定位到第一个, 索引是从 0 开始, 其他几种多元素定位类似)
find_element_by_name: 通过元素 name 属性定位
find_element_by_xpath: 通过元素 xpath 定位
find_element_by_tag_name: 通过元素标签名属性定位
find_element_by_link_text: 通过元素文本链接属性定位
find_element_by_partial_link_text: 通过元素部分文本链接属性定位
find_element_by_class_name: 通过元素类属性名定位
find_element_by_CSS_selector: 通过元素 CSS 定位
多元素定位方法:
find_elements_by_id: 通过元素 id 属性定位, 多元素定位, 返回是列表定位位置, 默认定位到第一个, 索引是从 0 开始, 其他几种多元素定位类似
find_elements_by_name: 通过元素 name 属性定位
find_elements_by_xpath: 通过元素 xpath 定位
find_elements_by_tag_name: 通过元素标签名属性定位
find_elements_by_link_text: 通过元素文本链接属性定位
find_elements_by_partial_link_text: 通过元素部分文本链接属性定位
find_elements_by_class_name: 通过元素类属性名定位
find_elements_by_css_selector: 通过元素 CSS 定位
下面看一下实例:
定位百度输入框, 下面是对应的 html 代码
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- driver = webdriver.Chrome()
- driver.find_element_by_id("kw")
- driver.find_element_by_name("wd")
- driver.find_element_by_xpath('//*[@id="kw"]')
- driver.find_element_by_css_selector('#kw')
- driver.find_element_by_class_name('s_ipt')
定位新闻链接:
- driver.find_element_by_link_text("新闻")
- driver.find_element_by_partial_link_text('新')
tag_name 标签名称定位一般用于定位多元素定位
通过 input 标签查找百度输入框, 返回是列表, 索引是从 0 开始
- s = driver.find_elements_by_tag_name("input")
- print(s[7].get_attribute('id'))
来源: http://www.bubuko.com/infodetail-3415398.html