如何使用Webdriver单击Facebook Like按钮

时间:2013-01-16 11:37:08

标签: facebook-like webdriver capybara

我正在尝试使用Webdriver点击Facebook Like按钮。您可以看到示例赞按钮at this page

切换到iframe后我尝试过:

page.execute_script("document.querySelector('.pluginConnectButton > div:first-child button').click()")

切换到iframe后,此脚本可在Firebug和Chrome开发者工具中使用。

但它在FirefoxDriver和ChromeDriver中无效(脚本通过但按钮未更改为单击按钮)

如何使用Webdriver单击此按钮?

3 个答案:

答案 0 :(得分:4)

虽然这对我有用但似乎很脆弱。我不得不使用一些javascript来获取iframe的id,因为FB更改了每个页面加载的id。幸运的是,他们没有改变iframe的等级。

id = page.evaluate_script("$('.fb_ltr').attr('id');")
within_frame(id) do
  page.first(:css, '.pluginButton').click
end

答案 1 :(得分:0)

这适合你。

if(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Like[\\s\\S]*$")== true) {
driver.findElement(By.xpath("//form[@id='u_0_1']/div/div/div/button")).click();
}
else{
System.out.println("Unable to click Like button on page");
}

答案 2 :(得分:0)

我正在使用page-object gem。这是我点击Like fb按钮的方式:

 in_frame(:class =>"fb_ltr") do |frame|
    button(:fb_btn, :css => "#facebook div.pluginButton.pluginButtonSmall.pluginButtonInline.pluginConnectButtonDisconnected button" , :frame => frame)
  end

...

fb_btn_element.when_present.click