5

我正在尝试使用 Webdriver 单击 Facebook Like 按钮。您可以在此页面上看到一个“赞”按钮示例。

切换到 iframe 后,我尝试过:

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

切换到 iframe 后,此脚本可在 Firebug 和 Chrome 开发人员工具中运行。

但它在 FirefoxDriver 和 ChromeDriver 中不起作用(脚本通过但按钮未更改为单击一个)

如何使用 Webdriver 单击此按钮?

4

3 回答 3

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
于 2013-01-22T18:22:23.057 回答
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");
}
于 2013-01-25T09:30:34.473 回答
0

我正在使用页面对象 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
于 2013-08-01T08:52:27.657 回答