2015-02-24 64 views
2

的HTML看起來像這樣:Python Selenium:如何用CSS選擇器單擊下拉菜單中的鏈接?

<span class="MenuIcons searchButton"></span> 
    ... (some stuff) 
    <a data-bind="" url="/ParagonLS/Search/Property.mvc/Index/1" tabdescription="RESIDENTIAL" subtabdescription="Criteria" subtabmaxallowed="3" targetex="" rel="" class=" SearchByClass1 " subtabgroup="true" subtabgroupadd="true" subtabstartindex="0" fullwindow="False" hideaddressbar="False">TEXT</a> 

我可以用得到的跨度:

driver.find_element_by_css_selector(".MenuIcons.searchButton") 

但由於跨度是一個下拉菜單,我需要去的內部元件,但不要不知道怎麼做,因爲它的名字周圍有空格。我該怎麼辦?

+0

我嘗試使用xpath,但由於空間是在類名中,我得到錯誤。如果你能告訴我如何處理這些空間,那麼這是一個可能的解決方案。 – 2015-02-24 04:40:45

+0

請看下面我的回答 – Saifur 2015-02-24 04:41:05

+0

你可以用'link_text'選擇嗎? – vks 2015-02-24 04:46:36

回答

2
import time 
driver.find_element_by_css_selector(".MenuIcons.searchButton").click() 
time.sleep(1) 
driver.find_element_by_partial_link_text("TEXT").click() 

您可以執行此操作並單擊鏈接。

+0

我得到「無法找到元素:{」方法「:」鏈接文本「,」選擇器「:」文本「}」錯誤 – 2015-02-24 04:55:20

+0

@PythonNoob什麼是'鏈接文本「正好? – vks 2015-02-24 04:56:05

+0

感謝您的糾正。我認爲這是更清潔 – Saifur 2015-02-24 05:14:37

1

我建議您使用xpath,因爲class包含空格。

//a[contains(@class,'SearchByClass1')] 

基於文本的搜索也是另一種可能性。

//a[.='TEXT'] 

編輯 執行javascript由於元件被隱藏按OP的評論

test = driver.execute_script("return document.querySelector(\"a[class*='SearchByClass1']\").innerHTML;"); 
print(test) 

打印

TEXT

+0

這個工作原本是隱藏的屬性? – 2015-02-24 04:41:50

+0

它隱藏在元素下。這就是爲什麼我試圖先打開它,然後 2015-02-24 04:44:51

相關問題