2014-02-13 22 views
2

我想在頁面上定位特定的CSS元素,但問題是它們有不同的選擇器名稱。例如,input#dp156435476435.textinput.wihtinnextyear.datepicker.hasDatepicker.error。我需要定位CSS,因爲我特別在元素末尾尋找.error,這只是在CSS中(測試網站上字段的錯誤驗證。我知道如果我的目標是class/name/href/ID /等等,我可以使用XPath,但我不知道在硒的webdriver部分CSS選擇器的任何幫助,將不勝感激,謝謝Selenium webdriver,Python - 目標部分CSS選擇器?

+0

您是否考慮過遍歷整個文檔樹並測試每個元素的CSS屬性? – GVH

回答

1

期間/句號是一個局部類選擇:!

span.error 

會發現:

<span class="error" /> 
<span class="error warning" /> 
<span class="critical error" /> 

您還可以:

span[class^='error'] 

(開頭)

span[class$='error'] 

(結尾)

span[class*='error'] 

(含)

0

如果頁面相似的元素,你可以結合什麼雅蘭說喜歡所以:

driver.find_element_by_css_selector("input[id^='dp'][class*='nextyear'][class$='error']") 
0

CSS = span.error - 錯誤

CSS = span.warning - 警告

CSS = span.critical - 上述嚴重錯誤

簡單的是CSS選擇,我們可以使用。