我正在尝试使用Webdriver点击Facebook Like按钮。您可以看到示例赞按钮at this page。
切换到iframe后我尝试过:
page.execute_script("document.querySelector('.pluginConnectButton > div:first-child button').click()")
切换到iframe后,此脚本可在Firebug和Chrome开发者工具中使用。
但它在FirefoxDriver和ChromeDriver中无效(脚本通过但按钮未更改为单击按钮)
如何使用Webdriver单击此按钮?
答案 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