2014-07-25 74 views
1

我試圖點擊並激活與Selenium的JavaScript鏈接。這是一個5星評級小部件。 五星是下面的確切項目。其他項目,IE 4星未完全顯示。硒蟒蛇單擊無序列表中的JavaScript鏈接

<div id="percentages_and_ratings"> 
<div id="percentages"> 
<div id="rating"> 
<ul id="personality-rating" class="star-rating profile_rating " onmouseout="Votes.publicStarOut(this)" onmouseover="Votes.publicStarOver(this)"> 
<li id="current-personality-3198779465475184989-1" class="current-rating" style="width: 0%;"></li> 
<li>... 
<li>... 
<li>... 
<li>... 
<li> 
<a class="five-stars" title="" href="javascript:processVoteNote('vote', 'personality', 5, '222222222222222', false, '', '', Profile.profileHeadingVote);">5</a> 
</li> 
<li class="cant-tell" style="display: none;"> 
<li class="click-away"> 

硒單元測試輸出看起來像

driver.find_element_by_xpath("(//a[contains(text(),'5')])[2]").click() 

,但不起作用。用螢火蟲選擇xpath,CSS,HTML也不行。有任何想法嗎?我已經在這幾個晚上,現在這麼是時候問:-)

我使用硒網絡驅動器和Python 2.7

這裏是我結束瞭解決吧..

id = self.getID(driver) 
script = "$(processVoteNote('vote', 'personality', 5, '"+id+"', false, '', '', Profile.profileHeadingVote));" 
driver.execute_script(script) 
+0

這是什麼意思,這不起作用?它顯示任何錯誤? – falsetru

回答

1

根據您發佈的示例HTML, browser.find_element_by_class_name('five-stars').click()應該成功選擇並單擊該鏈接。如果頁面上有該類名稱的頁面上有多個元素,則可以使用browser.find_elements_by_class_name('five-stars'),迭代該列表以識別相關鏈接,然後單擊它們。

如果你想使用XPATH搜索,我建議使用xPath Tester來嘗試不同的模式。

+0

這確實有效,但它沒有。它允許我在編寫爬蟲程序時遇到下一個錯誤(該元素不可見),我發現了一個工作。 – StarWind0