5

Webdriverを使用してFacebookのいいねボタンをクリックしようとしています。このページで、いいねボタンの例を見ることができます。

iframe に切り替えた後、私は試しました:

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

このスクリプトは、iframe に切り替えた後、Firebug および Chrome 開発者ツールで機能します。

ただし、FirefoxDriver と ChromeDriver では機能しません (スクリプトはパスしますが、ボタンはクリックされたものに変更されません)。

Webdriver を使用してこのボタンをクリックするにはどうすればよいですか?

4

3 に答える 3

4

これは私にとってはうまくいきましたが、もろいようです。FB はページの読み込みごとに ID を変更するため、iframe の ID を取得するには JavaScript を使用する必要がありました。幸いなことに、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 に答える