selenium教程二:元素操作和元素信息获取

元素定位

from selenium import  webdriver
from selenium.webdriver.common.by import By   #引入方法

driver=webdriver.Chrome()
driver.find_element(定位方法,值)     #返回查找到的第一个元素(定位方法,值)
driver.find_elements(定位方法,值)  #返回查找到的所有元素  (定位方法,值)

浏览器中F12审查元素

1.By.ID

id一般在页面中是唯一的,有id优先用id

图片[1] - selenium教程二:元素操作和元素信息获取 - 正则时光

2.By.NAME

图片[2] - selenium教程二:元素操作和元素信息获取 - 正则时光

3.By.CLASS_NAME

图片[3] - selenium教程二:元素操作和元素信息获取 - 正则时光

4.By.TAG_NAME

根据标签名进⾏定位

5.By.LINK_TEXT

根据链接⽂本(a标签)定位

传⼊的链接⽂本,必须全部匹配,不能模糊

6.By.PARTIAL_LINK_TEXT

根据链接⽂本(a标签)定位

传⼊的链接⽂本,⽀持模糊匹配(传⼊局部⽂字)

7.By.XPATH

1、如果标签没有(id\name\class)3个属性,也不是链接标签,只能使⽤tag_name定位,⽐较麻烦。

2、⽅便在⼯作⽤中查找元素,使⽤xpath和css⽐较⽅便(⽀持任意属性、层级)来找元素

路径:/单斜杠,逐级层级,//双斜杠,任意层级

//input[@type='submit']                     #匹配拥有属性type="submit" 的input标签

//*[@value='提交']                           #匹配任意拥有属性value="提交"的标签

//input[@value='提交' and @class='banana']   #利用元素的多个属性来进行定位

//div[@id='test1']/input[@value='提交']      #先定位到其父级元素,然后再找到该元素。

//*[text()='注册']                           #利用元素的文本定位元素

//*[contains(@attribute,'局部属性值')]        #利用局部属性值定位元素

//*[starts-with(text(),'普京')]              #匹配文本开头

8.By.CSS_SELECTOR

#id属性值Id选择器
.class属性值类选择器
标签名标签选择器
[属性名=’属性值’]属性选择器
选择器>选择器 如: #p1>input层级选择器:父子关系
选择器 选择器 如: #p1 input层级选择器:后代关系
选择器>选择器 如:#s-top-left>a:nth-child(3)层级选择器:后代的第3个
tagName[attribute*=’局部属性值’]模糊匹配:包含
tagName[attribute^=’局部属性值’]模糊匹配:以…开头
tagName[attribute$=’局部属性值’]模糊匹配:以…结尾
selenium定位css选择器

定位方法选择优先级:

1、⾸推css定位,原因执⾏速度快。

①如果有ID属性,使⽤#id

②没有id属性,使⽤其他有的属性(能代表唯⼀的属性)

③如果属性都带不了唯⼀,使⽤层级

2、如果css解决不了,使⽤xpath。

元素操作

元素=driver.fifind_element()

1、操作⽅法

  • 点击:元素.click()
  • 输⼊:元素.send_keys(内容)
  • 清空:元素.clear()

2、获取⽅法

  • 获取⼤⼩: 元素.size
  • 获取⽂本: 元素.text
  • 获取属性: 元素.get_attribute(‘属性名’)
  • 元素是否可⻅: 元素.is_displayed()
  • 元素是否可⽤: 元素.is_enabled()
  • 元素是否选中: 元素.is_selected()
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享