selenium 定位方式


# selenium 定位方式

以百度搜索框为例:

id

常见定位方式有以下几种:

  • 根据 id 进行定位
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 id 进行定位元素
driver.find_element(By.ID, 'kw').send_keys("test")
1
2
3
4
5
6
  • 通过 name 定位
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 name 进行定位元素
driver.find_element(By.NAME, 'wd').send_keys("test")
1
2
3
4
5
6
  • 通过 class_name 定位
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 class_name 进行定位元素
driver.find_element(By.CLASS_NAME, 's_ipt').send_keys("test")
1
2
3
4
5
6
  • 通过 tag(标签属性)定位
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 tag 进行定位元素
driver.find_element(By.TAG_NAME, 'input').send_keys("test")
1
2
3
4
5
6
  • 通过 link_text(链接文本)定位
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 link_text 进行定位元素
driver.find_element(By.LINK_TEXT, '百度首页').send_keys("test")
1
2
3
4
5
6
  • 通过 partial_link_text(链接文本)定位

与上面的 link_text 类似,会模糊匹配 link_ text 中的文字

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 partial_link_text 进行定位元素
driver.find_element(By.PARTIAL_LINK_TEXT, '首页').send_keys("test")
1
2
3
4
5
6
  • 通过 xpath 定位

利用浏览器调试功能,定位到元素所在的那一行右键-->Copy-->Copy XPath

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 xpath 进行定位元素
driver.find_element(By.XPATH, "//*[@id="kw"]").send_keys("test")
1
2
3
4
5
6

对于 xpath 的理解,可以查看相对应的 xpath语法selenium中xpath定位方式

  • 通过 CSS selector 定位

想理解 CSS 选择器的定位方式,需要先了解下 CSS 语法

from selenium import webdriver
driver = webdriver.Chrom()
driver.get("https://www.baidu.com")
#通过元素的 CSS selector 进行定位元素
driver.find_element(By.CSS_SELECTOR, '#kw').send_keys("test")
1
2
3
4
5

CSS 选择器的语法有很多,可以参考 CSS选择定位

(完)