我正在尝试点击并激活与Selenium的javascript链接。这是一个5星评级小部件。 五星级是下面的确切项目。其他项目,IE 4星没有完全显示。
<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">
selenium单元测试输出看起来像
driver.find_element_by_xpath("(//a[contains(text(),'5')])[2]").click()
但这不起作用。使用firebug选择xpath,CSS,HTML也不起作用。有任何想法吗?我已经在这几个晚上了,所以是时候问: - )
我正在使用Selenium web驱动程序和python 2.7
以下是我最终解决问题的方法..
id = self.getID(driver)
script = "$(processVoteNote('vote', 'personality', 5, '"+id+"', false, '', '', Profile.profileHeadingVote));"
driver.execute_script(script)
答案 0 :(得分:2)
根据您发布的示例HTML,
browser.find_element_by_class_name('five-stars').click()
应成功选择并点击该链接。如果页面上有多个具有该类名称的元素,则可以使用browser.find_elements_by_class_name('five-stars')
,遍历该列表以标识相关链接,然后单击它们。
如果您想使用XPATH搜索,我建议您使用xPath Tester来尝试不同的模式。