selenium 帶有空格的class name元素定位

前言

有些class屬性中間有空格,如果直接復(fù)制過來定位是會報(bào)錯的InvalidSelectorException: Message:

The given selector u-label f-dn is either invalid or does not result in a WebElement. The following error occurred:

InvalidSelectorError: Compound class names not permitted

這個報(bào)錯意思是說定位語法錯了。

class屬性科普

1.class屬性中間的空格并不是空字符串,那是間隔符號,表示的是一個元素有多個class的屬性名稱

(class屬性是比較特殊的一個,除了這個有多個屬性外,其它的像name,id是沒多個屬性的)

取其中一個唯一的屬性是能定位的,但大多數(shù)情況下,該屬性名有多個元素使用。這時你可以定位所有元素,然后通過下標(biāo)來獲取需要的元素。另外,也可以使用css屬性定位,具體見方法用例

假設(shè)有 class name = col3 fcweak ft12 tal

其中僅 tal唯一

#?方法一:取單個class屬性(如果屬性唯一) ?

Element=driver.find_element_by_class_name("tal")


#?方法二:定位一組取下標(biāo)定位(乃下策)??

Element=driver.find_elements_by_class_name("fcweak?")[0]

Element=driver.find_elements_by_class_name("ft12?")[3]


#?方法三:css定位??

Element=driver.find_element_by_css_selector(".col3.fcweak.ft12.tal")?


#?方法四:取css的單個class屬性也是可以的??

Element=driver.find_element_by_css_selector(".col3")


#?方法五:直接包含空格的CSS屬性定位大法??

Element=driver.find_element_by_css_selector("[class='col3 fcweak ft12 tal']")?



css 定位請看博客 ?https://www.cnblogs.com/zuodaozhudemeng/p/7487798.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容