下面就为大家详细讲解“浅谈Selenium+Webdriver 常用的元素定位方式”的完整攻略。
1. 概述
Selenium+Webdriver 是一种常用的Web自动化测试工具,元素定位是其重要的功能之一。本文将介绍常见的元素定位方式,以帮助web测试人员更加熟练、准确地开展工作。
2. 元素定位方式
在使用 Selenium + Webdriver 进行自动化测试时,需要使用一定的元素定位方式来定位页面上的元素,以下是常用的定位方式:
2.1 通过id定位
通过id属性定位元素是最常用的一种方法。id属性是可以在页面上唯一识别一个元素的,使用时只需用find_element_by_id()函数即可,比如:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.example.com")
el = driver.find_element_by_id("element_id")
2.2 通过name定位
通过元素的name属性来定位元素也是一种常用的方法。使用时,只需用find_element_by_name()函数即可:
el = driver.find_element_by_name("element_name")
2.3 通过class定位
通过元素的class属性来定位元素也是一种常用的方法。使用时,只需用find_element_by_class_name()函数即可:
el = driver.find_element_by_class_name("element_class")
2.4 通过tag_name定位
通过元素的标签名来定位元素也是一种常用的方法。使用时,只需用find_element_by_tag_name()函数即可:
el = driver.find_element_by_tag_name("element_tag")
2.5 通过link_text定位
通过连接文本的全文或部分文本来定位链接元素的方法为link_text。使用时,只需用find_element_by_link_text()函数即可:
el = driver.find_element_by_link_text("element_link_text")
2.6 通过partial_link_text定位
与link_text类似,可以通过partial_link_text来查询包含特定字符串的链接元素。使用时,只需用find_element_by_partial_link_text()函数即可:
el = driver.find_element_by_partial_link_text("element_partial_link_text")
2.7 通过XPath定位
XPath既可以通过元素的属性值也可以通过元素的层次关系来定位,是一种十分灵活且通用的方法。使用时,只需用find_element_by_xpath()函数即可:
el = driver.find_element_by_xpath("//element_xpath")
2.8 通过CSS定位
同样可以通过元素的属性值和层次关系来定位元素。CSS定位方式相对比XPath更简洁。使用时,只需用find_element_by_css_selector()函数即可:
el = driver.find_element_by_css_selector("element_css")
3. 示例说明
下面,我们通过两个示例来说明以上元素定位方式的具体应用。
3.1 示例1:通过id定位
我们以百度搜索为例,演示通过id定位元素。比如我们要在百度上搜索Selenium+Webdriver相关信息,可以这样写代码:
from selenium import webdriver
import time
# 打开浏览器
driver = webdriver.Chrome()
# 跳转到百度搜索页面
driver.get("https://www.baidu.com")
# 输入关键字并搜索
input_element = driver.find_element_by_id("kw")
input_element.send_keys("Selenium+Webdriver")
submit_element = driver.find_element_by_id("su")
submit_element.click()
time.sleep(10) # 睡眠10秒钟后关闭浏览器
driver.quit()
3.2 示例2:通过XPath定位
我们以淘宝网站分类浏览为例,演示通过XPath定位元素。比如我们要在淘宝网站上通过元素路径进入电器分类中,可以这样写代码:
from selenium import webdriver
import time
# 打开浏览器
driver = webdriver.Firefox()
# 打开淘宝网站并跳转到需要的页面
driver.get("https://www.taobao.com")
element = driver.find_element_by_xpath("//div[@aria-label='电器']")
element.click()
time.sleep(10) # 睡眠10秒钟后关闭浏览器
driver.quit()
以上就是本文关于 Selenium+Webdriver 常用的元素定位方式的详细攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈Selenium+Webdriver 常用的元素定位方式 - Python技术站