0
点赞
收藏
分享

微信扫一扫

selenium元素定位方法find_element

小北的爹 2022-01-23 阅读 114

传统八大定位方法

from selenium import webdriver

八中定位方法

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')

如果是获取多个,则需要在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, '')

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')

用的最多的是

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

这三个。

举报

相关推荐

0 条评论