当前位置:   article > 正文

selenium元素定位方法find_element_selenium findelements

selenium findelements

传统八大定位方法

from selenium import webdriver
  • 1

八中定位方法

driver.find_element_by_id(id)
driver.find_element_by_name('name')
driver.find_element_by_tag_name('tag_name')
driver.find_element_by_xpath('xpath')
driver.find_element_by_link_text('link_text')
driver.find_element_by_class_name('class_name')
driver.find_element_by_css_selector('css_selector')  # 需要掌握css语法
driver.find_element_by_partial_link_text('partial_link_text')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

如果是获取多个,则需要在element后边加s,使用find_elements_by_xx。
使用以上这八种方式,如果使用的是最新版本的selenium,可能会产生warning警告。提示以上方法即将被废弃。

find_element()与find_elements()

作为一种解决办法,可以替换成下边这种方式,直接使用find_element()方法:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver.find_element(By.xxx, '')
  • 1
  • 2
  • 3
  • 4

find_element()有两个参数,第一个是定位的方法,第二个是定位的内容。
传统的八种方法底层也是使用find_element()方法写的。
定位一个元素时使用find_element(),定位多个元素时使用find_elements()

具体示例:

以定位百度搜索框为例

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通过id定位,网页元素的id通常是唯一的
driver.find_element(By.ID, 'kw').send_keys('xxxx')
# 通过类名定位元素
driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('xxx')
# 根据name属性的值来定位元素
driver.find_element(By.NAME, 'wd').send_keys('xxx')
# 根据xpath语法来定位元素
driver.find_element(By.XPATH, '//input[@id="kw"]').send_keys('xx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

用的最多的是

  • By.ID
  • By.CLASS_NAME
  • By.XPATH

这三个。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/587275
推荐阅读
相关标签
  

闽ICP备14008679号