1. 程式人生 > 實用技巧 >python+selenium的八種定位方法

python+selenium的八種定位方法

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 import
webdriver #引入 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 import
webdriver #引入 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()來清空輸入框