Python Selenium PhantomJS没有点击Firefox Webdriver能够点击的相同按钮

时间:2016-05-26 04:25:46

标签: python selenium

我正在实施一个机器人来点击reddit中的upvote按钮

这是upvote按钮的html代码。

<div class="arrow up login-required access-required" data-event-action="upvote" role="button" aria-label="upvote" tabindex="0"></div>
<div class="score likes">•</div>
<div class="score unvoted">•</div>
<div class="score dislikes">•</div>
<div class="arrow down login-required access-required" data-event-action="downvote" role="button" aria-label="downvote" tabindex="0"></div>

我可以使用

点击upvote按钮

target = driver.find_element_by_xpath("//div[@class='arrow up login-required access-required']")
target.click()


OR

target = driver.find_element_by_css_selector("div.arrow.up")
target.click()

点击在FIREFOX网络驱动程序中正常工作,但当我尝试在PhantomJS中实现相同功能时,浏览器没有点击。

以下是2个浏览器的屏幕截图

enter image description here

1 个答案:

答案 0 :(得分:2)

尝试使用selenium的execute_script方法通过jQuery或JavaScript执行click()操作。下面是将执行单击操作的示例代码。

driver.execute_script("$('div.arrow.up').click()")

对于包含多个upvote字段的页面,您可以使用索引选择要单击的字段,例如

driver.execute_script("$('div.arrow.up')[0].click()")
driver.execute_script("$('div.arrow.up')[1].click()")
driver.execute_script("$('div.arrow.up')[2].click()")
and so on..