2015-01-20 49 views
1

我想使用Selenium和Python在IE9中填寫表單。在表單中,有很多「展開/摺疊」鏈接;它們之間的唯一區別是文本標籤。此外,它們不包含ID,只是'style'和'onclick'(在它下面有一行,可能有一個ID可能用於查看父級?)。我需要能夠單擊表單中的每個展開,但是現在我甚至不能點擊其中的一個(IE9似乎不太喜歡xpath,並且沒有要搜索的id)。這裏的正與工作HTML我的部分:在Python中使用Selenium:單擊不包含ID的多個「展開」鏈接

<tr> 
    <td colSpan="4"> 
    <legend style="cursor: hand;" onclick="expandCollapse(this,'Name1')"> 
     Text - Name1 (
     <u> 
     Text - Expand 
     Text -) 
    <div id="Naming1" style="display: none;"> 
<tr> 
    <td colSpan="4"> 
    <legend style="cursor: hand;" onclick="expandCollapse(this,'Name2')"> 
     Text - Name2 (
     <u> 
     Text - Expand 
     Text -) 
    <div id="Naming2" style="display: none;"> 

有沒有一種辦法能夠點擊所有的代碼時建立像上面的膨脹嗎?

謝謝。

回答

0

您不能依靠提供的div元素與id s,因爲它們不可見。在這種情況下,您將獲得ElementNotVisible例外。

相反,請嘗試以下選項:

driver.find_elements_by_xpath('//tr/td[@colSpan="4"]/legend[@onclick]') 
driver.find_elements_by_xpath('//legend[starts-with(@onclick, "expandCollapse")]') 

driver.find_elements_by_css_selector('legend[onclick^="expandCollapse"]') 

driver.find_elements_by_tag_name('legend') 

有更可能的方式去的legend元素。我提供了多種選擇的原因是沒有完整的頁面HTML或鏈接到提供的目標網站。

參見:

希望有所幫助。

+0

太棒了!標籤名稱工作。謝謝! – user2869231 2015-01-20 19:20:57

相關問題