python+selenium的八種定位方法
阿新 • • 發佈:2020-12-02
1、通過id定位
find_element_by_id()
例子
選擇id
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_id("kw").click() #獲取輸入框的id進行元素定位,然後點選 driver.find_element_by_id("kw").send_keys("你好")
2、通過name定位
find_element_by_name()
例子
選擇name
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_name("wd").click() #獲取輸入框的name進行元素定位,然後點選 driver.find_element_by_name("wd").send_keys("你好")
3.通過class定位
find_element_by_class_name()
例子
選擇class
from selenium importwebdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_class_name("s_ipt").click() #獲取輸入框的class進行元素定位,然後點選 driver.find_element_by_class_name("s_ipt").send_keys("你好")
4.通過tag定位(標籤(一個網頁中標籤有很多,也有可能重複,所以不常用))
find_element_by_tag_name()
例子
from selenium importwebdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_tag_name("area").click() #點選百度log圖示
5.通過link_text定位
find_element_by_link_text()
例子
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_link_text("貼吧").click() #獲取文字,來選中元素位置
6.通過partial_link_text定位
find_element_by_partial_link_text()
例子(partial _link 是一種模糊匹配的方式,對於超長的字串擷取其中的一部分)
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_partial_link_text("嫦娥五號").click() #獲取文字,來選中元素位置
7.通過xpath定位(如果網頁中元素位置變了,那麼就會定位不到元素,xpath獲取的是相對位置)
find_element_by_xpath()
例子
選中程式碼行點選右鍵
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_xpath("/html/body/div/div[2]/div[5]/div[1]/div/form/span[2]/input").click() #獲取文字,來選中元素位置
8.通過css定位
find_element_by_css_selector()
例子
from selenium import webdriver #引入 driver=webdriver.Chrome() #用谷歌瀏覽器 driver.get("https://www.baidu.com/") #開啟百度 driver.find_element_by_css_selector("[class='s_ipt']").send_keys("h")
在輸入框後可加.clear()來清空輸入框