溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Python中實現(xiàn)selenium根據class定位頁面元素

發(fā)布時間:2021-05-22 16:04:11 來源:億速云 閱讀:156 作者:Leah 欄目:開發(fā)技術

本篇文章給大家分享的是有關怎么在Python中實現(xiàn)selenium根據class定位頁面元素,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、driver.find_element_by_class_name("classname")

但是好多時候,很多并列的元素如list表單,class都是共用同一個,如:

怎么在Python中實現(xiàn)selenium根據class定位頁面元素

此時driver.find_elements_by_class_name("classname") 就可以派上用場了,該方法可以返回的是一個list列表,那么所有針對list的方法在它上面都同樣適用。比如,如果我們知道想要定位的元素在頁面中是第n個,則可以這樣定位:

二、driver.find_elements_by_class_name("classname")[n] (注意:是elements,不是element)

需要注明的是,使用上述方法,即使這網頁中樣的元素只有一個,得到的依舊是一個list對象,只不過長度為1.

當然如果你對css方法比較熟悉,還可以通過css來定位,selenium同樣是支持的,css中,"."后面跟class名即可,一個常規(guī)的寫法如下:

三、driver.find_element_by_css_selector('.dtb-style-1').click()

如果你的例子足夠特殊,這個元素的classname有多個,上面的方法還可以用多個"."進行并行連接。如:

driver.find_element_by_css_selector('.dtb-style-1.table-dragColumns').click()

還有一種方法同樣可以支持多個類的情況,還是css屬性方法:

driver.find_element_by_css_selector("[class='dtb-style-1 table-dragColumns']") 用空格分隔即可。

如果你對css屬性不熟悉的話,也不打緊,強大的Chrome瀏覽器能自動幫你生成元素的xpath、css等多種屬性。拿百度首頁的源碼舉例,在頁面源碼文件,定位到元素后,右鍵,效果如下:

怎么在Python中實現(xiàn)selenium根據class定位頁面元素

生成的代碼復制后,針對此場景可以直接拿來用,但是鑒于現(xiàn)在的網頁更新非常頻繁,建議還是要在w3c下簡單學習下xpath、css selector等重要方法,那樣我們可以寫出非常靈活的代碼,對頁面的細微調整會有更強的適應性。

最后,我們還可以通過強大的xpath來定位元素,如果元素有多個class,我們只用選擇其中一個放入xpath中即可,否則程序會出錯。示例如下:

四、driver.find_element_by_xpath('//div[@class="u_sp"]/a[1]').click()

這么多方法中,xpath是最最靈活的,因為xpath內置了很多函數(shù),在某些場合中你可能就需要依靠這種靈活性,"靈活"就不可避免的會帶來復雜性。盡管如此,筆者還是鼓勵你們,在實際工作中,每種定位元素的方法都要學會,很多時候,你會發(fā)現(xiàn)你精心寫的方法一不小心就不靈了,這個時候掌握多種定位方法,就顯得尤為重要了。

Python主要用來做什么

Python主要應用于:1、Web開發(fā);2、數(shù)據科學研究;3、網絡爬蟲;4、嵌入式應用開發(fā);5、游戲開發(fā);6、桌面應用開發(fā)。

以上就是怎么在Python中實現(xiàn)selenium根據class定位頁面元素,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI