Selenium 八种定位方法


前言

要想操作 Web 界面上的元素,首先要定位到该元素,Selenium 提供了定位元素的 API,这些方法都被定义在 WebDriver 类中,这些方法都以 find 开头,下面我们以百度首页为例来看一下八种定位方法。

打开百度首页,定位到搜索框,右键->检查,查看搜索框元素。

通过元素 id 定位

方法名称:find_element_by_id

from selenium import webdriver
import time

# 加载浏览器驱动
driver = webdriver.Chrome()

# 访问百度
driver.get("https://www.baidu.com")

# 通过元素 id 定位
driver.find_element_by_id("kw").send_keys("selenium")

# 定位搜索按钮并点击
driver.find_element_by_id("su").click()

time.sleep(3)

# 退出浏览器
driver.quit()

通过元素 name 定位

方法名称:find_element_by_name

from selenium import webdriver
import time

# 加载浏览器驱动
driver = webdriver.Chrome()

# 访问百度
driver.get("https://www.baidu.com")

# 通过元素 name 定位
driver.find_element_by_name("wd").send_keys("selenium")

# 定位搜索按钮并点击
driver.find_element_by_id("su").click()

time.sleep(3)

# 退出浏览器
driver.quit()

通过元素 class 定位

方法名称:find_element_by_class_name

from selenium import webdriver
import time

# 加载浏览器驱动
driver = webdriver.Chrome()

# 访问百度
driver.get("https://www.baidu.com")

# 通过元素 class 定位
driver.find_element_by_class_name("s_ipt").send_keys("selenium")

# 定位搜索按钮并点击
driver.find_element_by_id("su").click()

time.sleep(3)

# 退出浏览器
driver.quit()

通过元素 tag 定位

方法名称:find_element_by_tag_name,tap 名称相同的太多了,一般不会用这个方法。

通过链接文本定位

方法名称:find_element_by_link_text,精确匹配。

from selenium import webdriver
import time

# 加载浏览器驱动
driver = webdriver.Chrome()

# 访问百度
driver.get("https://www.baidu.com")

# 通过链接文本定位
driver.find_element_by_link_text("hao123").click()

time.sleep(3)

# 退出浏览器
driver.quit()

通过部分链接文本定位

方法名称:find_element_by_partial_link_text,模糊匹配。

from selenium import webdriver
import time

# 加载浏览器驱动
driver = webdriver.Chrome()

# 访问百度
driver.get("https://www.baidu.com")

# 通过部分链接文本定位
driver.find_element_by_partial_link_text("hao").click()

time.sleep(3)

# 退出浏览器
driver.quit()

通过 css 选择器定位

方法名称:find_element_by_css_selector,需要重点掌握。

from selenium import webdriver
import time

# 加载浏览器驱动
driver = webdriver.Chrome()

# 访问百度
driver.get("https://www.baidu.com")

# 通过 css 选择器定位
driver.find_element_by_css_selector("#kw").send_keys("selenium")

# 定位搜索按钮并点击
driver.find_element_by_id("su").click()

time.sleep(3)

# 退出浏览器
driver.quit()

通过 xpath 定位

方法名称:find_element_by_xpath,需要重点掌握。

from selenium import webdriver
import time

# 加载浏览器驱动
driver = webdriver.Chrome()

# 访问百度
driver.get("https://www.baidu.com")

# 通过 xpath 定位
driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")

# 定位搜索按钮并点击
driver.find_element_by_id("su").click()

time.sleep(3)

# 退出浏览器
driver.quit()


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM