0


selenium+pycharm+python自动化之八大元素定位

一、八大元素定位

1、使用元素定位的前提:需要定位的元素或它的属性必须唯一。

2、

find_element_by_*

命令在最新的SeleniumPython库中已被弃用,必须使用

find_element()

3、八大元素:

  id、name、link_text、partial_link_text、css_selector、xpath、class_name、tag_name

4、使用方法

①引入By
     from selenium.webdriver.common.by import By
  • 使用idelement = driver.find_element(By.ID, "element_id")
  • 使用nameelement = driver.find_element(By.NAME, "element_name")
  • 使用class_namebutton = driver.find_element(By.CLASS_NAME, "quiz_button")
  • 使用link_textelement = driver.find_element(By.LINK_TEXT, "element_link_text")
  • 使用partial_link_textelement = driver.find_element(By.PARTIAL_LINK_TEXT, "element_partial_link_text")
  • 使用tag_nameelement = driver.find_element(By.TAG_NAME, "element_tag_name")
  • 使用css_selectorelement = driver.find_element(By.CSS_SELECTOR, "element_css_selector")
  • 使用xpathelement = driver.find_element(By.XPATH, "element_xpath")

②语法如下:

  • 使用idelement = driver.find_element(“id”, "element_id")
  • 使用nameelement = driver.find_element("name", "element_name")
  • 使用class_namebutton = driver.find_element("class_name", "quiz_button")
  • 使用link_textelement = driver.find_element("link_text", "element_link_text")
  • 使用partial_link_textelement = driver.find_element("partial_link_text", "element_partial_link_text")
  • 使用tag_nameelement = driver.find_element("tag_name", "element_tag_name")
  • 使用css_selectorelement = driver.find_element("css_selector", "element_css_selector")
  • 使用xpathelement = driver.find_element("xpath", "element_xpath")

5、使用场景

①优先用id、name

②是否是超链接,是超链接用

link_text、partial_link_text,

否则用

css_selector、xpath

class_name、tag_name

很少用,因为这俩个难以保证被定为元素或属性的唯一性

6、xpath定位方法

(1)绝对路径:以/开头,从源头标签开始从上到下查找所需元素

(2)相对路径:以//开头

①相对路径+索引定位

//标签名/标签名[有同名标签时,所需标签的序号]/标签名 例://form/span[1]/input

②相对路径+属性定位:搜索标签名下属性为属性名1='属性值1'的标签

//标签名[@属性名1='属性值1'] 例://input[@autocomplete='off']

③相对路径+通配符定位

搜索整个网页找到标签里有属性名1='属性值1'的标签

//标签名*[@属性名1='属性值1'] 例://input[@autocomplete='off']

搜索整个网页找到标签里有属性值为'属性值1'的标签

//标签名*[@='属性值1'] 例://input[@='off']

④相对路径+部分属性值定位

搜素属性值以x开头的标签

//[start-with(@属性名,'x')] 例://[start-with(@autocomplete,'of')]

搜素属性值以x结尾的标签

//[substring(@属性名.a,'x')] 例://[substring(@autocomplete.2,'ff')]

搜素属性值包含x的标签

//[contains(@属性名,'x')] 例://[contains(@autocomplete,'ff')]

⑤相对路径+文本定位

//标签名[text()='x')] 例://span[text()='按图片搜索')]

7、css定位方法

1、绝对路径:基本不用

2、通过ID和Class定位

3、通过属性定位

4、通过部分属性定位

5、查询子元素定位

6、查询兄弟节点定位

二、元素定位不到的原因

1、元素没有加载完成

2、元素在Frame中

3、元素不可用、不可读、不可见

4、动态属性、动态的div层

标签: 自动化 python

本文转载自: https://blog.csdn.net/r18911838551/article/details/124237692
版权归原作者 进击的萌小猫 所有, 如有侵权,请联系我们删除。

“selenium+pycharm+python自动化之八大元素定位”的评论:

还没有评论