selenium(python)定位(查找)元素的方法小结

有多种方法可以在网页中定位元素。你可以为你的项目选择最合适的那一个。selenium提供以下方法用于在网页中定位元素。
如果匹配到多个元素将默认返回第一个。

  • find_element_by_id(属性)
  • find_element_by_name(属性)
  • find_element_by_xpath(根据xpath语法)
  • find_element_by_link_text(根据链接文字定位
  • find_element_by_partial_link_text(同上模糊定位)
  • find_element_by_tag_name(标签名)
  • find_element_by_class_name(类名)
  • find_element_by_css_selector(根据css语法)

查找(定位)多个元素(以下方法将会返回列表):
使用方法同定位单个元素,不同的是返回匹配的多个元素的列表。

  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_partial_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name
  • find_elements_by_css_selector

除了以上给出的公共方法,还有2个私有方法也许对网页中的元素定位有用。这两个方法是find_element 和 find_elements。
举个栗子:

from selenium.webdriver.common.by import By

driver.find_element(By.XPATH, '//button[text()="Some text"]')
driver.find_elements(By.XPATH, '//button'

以下是By类可用的属性:

ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"

翻译自selenium官网有改动

还可以通过javascript语法来定位,返回类型就是单个HTML元素或者数组。

webdriver.execute_script("javascript code")

举个栗子:

from selenium import webdriver
driver = webdriver.Firefox()
driver.execute_script("document.getElementById('username')")
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值