如何使用Webdriver点击Facebook Like按钮



我正在尝试使用Webdriver点击Facebook Like按钮。你可以在这个页面看到一个Like按钮的例子。

切换到iframe后,我试过:

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

这个脚本可以在Firebug和Chrome Developer Tools中工作,在切换到iframe后。

但它不工作在FirefoxDriver和ChromeDriver(脚本通过,但按钮没有改变为点击一个)

如何使用Webdriver点击此按钮?

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

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

这个对你有用

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");
}

我使用的是page-object gem。下面是我点赞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

相关内容

  • 没有找到相关文章

最新更新