沃梦达 / IT编程 / 前端开发 / 正文

浅谈Selenium+Webdriver 常用的元素定位方式

下面就为大家详细讲解“浅谈Selenium+Webdriver 常用的元素定位方式”的完整攻略。

下面就为大家详细讲解“浅谈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 常用的元素定位方式