Selenium常用元素定位方法

本人学习用于记录,仅供参考

元素定位主要分为两种写法 Xpath定位、Css定位
以百度搜索框作为案例:https://www.baidu.com/


(1)根据元素ID属性定位元素

  • Xpath定位://input[@id=“kw”]
  • Css定位:#kw
driver.find_element("id","kw").send_keys("ancient8")
driver.find_element(By.ID,"kw").send_keys("ancient8")
driver.find_element(By.XPATH,"//input[@id='kw']").send_keys("ancient8")
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("ancient8")


(2)根据元素Class属性定位元素

  • Xpath定位://input[@class=“s_ipt”]
  • Css定位:.s_ipt
driver.find_element("class name","s_ipt").send_keys("ancient8")
driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("ancient8")
driver.find_element(By.XPATH,"//input[@class='s_ipt']").send_keys("ancient8")
driver.find_element(By.CSS_SELECTOR,".s_ipt").send_keys("ancient8")


(3)根据元素Name属性定位元素

  • Xpath定位://input[@name=“wd”]
  • Css定位:[name=wd]
driver.find_element(By.NAME,"wd").send_keys("ancient8")
driver.find_element(By.XPATH,"//input[@name='wd']").send_keys("ancient8")
driver.find_element(By.CSS_SELECTOR,"[name=wd]").send_keys("ancient8")


(4)根据标签名定位元素Tag_name
如果懂HTML知识,我们就知道HTML是通过tag来定义功能的,比如input是输入,table是表格,等等…。每个元素其实就是一个tag,一个tag往往用来定义一类功能,我们查看百度首页的html代码,可以看到有很多div,input,a等tag,所以很难通过tag去区分不同的元素。基本上在我们工作中用不到这种定义方法,仅了解就行。下面代码仅做参考,运行时将会报错

driver.find_element(By.TAG_NAME,"input").send_keys("ancient8")


(5)通过a标签的文本定位(模糊匹配)Partial_link_text

  • Xpath定位://a[text()=‘图片’]
driver.find_element(By.PARTIAL_LINK_TEXT,"闻").click()
driver.find_element(By.XPATH,"//a[text()='图片']").click()


(6)通过a标签的文本定位(精准匹配)Link_text

driver.find_element(By.LINK_TEXT,"新闻").click()


(7)通过xpath定位表达式查找元素
Xpath相对路径定位://form/span/input

driver.find_element(By.XPATH,"//form/span/input").send_keys("ancient8")


(8)通过Css定位表达式查找元素
Css元素定位:[autocomplete=“off”]

driver.find_element(By.CSS_SELECTOR,"[autocomplete='off']").send_keys("ancient8")

你可能感兴趣的:(selenium,html,前端)