2013-01-16 10 views
5

Sto provando a fare clic su pulsante Mi piace Facebook con Webdriver. Puoi vedere un esempio di pulsante Mi piace at this page.Come fare clic su pulsante Mi piace di Facebook utilizzando Webdriver

Dopo il passaggio a IFRAME Ho provato:

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

Questo script funziona in Firebug e Chrome Developer Tools dopo il passaggio a iframe.

Ma non funziona in FirefoxDriver e ChromeDriver (sceneggiatura passa pulsante, ma non è cambiato di una cliccato)

Come posso fare clic su questo pulsante utilizzando WebDriver?

+0

Potete mostrare l'esempio di lavoro? –

+0

@MurtazaHussain Funziona il pulsante Mi piace in [questa pagina] (http://developers.facebook.com/docs/reference/plugins/like/). Devo fare clic sul pulsante in un'altra pagina ma i pulsanti sono gli stessi. –

+0

Sono riuscito a far funzionare questo in watir-webdriver, ma ho dovuto attivare l'evento mouseover per il pulsante prima di fare clic su di esso. Sfortunatamente non sono riuscito a capire come replicare lo stesso in Capybara o Selenium-Webdriver. Facebook potrebbe anche controllare l'utilizzo del webdriver, come puoi vedere nell'iframe che vedrà un attributo webddriver uguale a true. –

risposta

4

Mentre questo ha funzionato per me, sembra fragile. Ho dovuto usare qualche javascript per ottenere l'id dell'iframe dal momento che FB cambia l'id su ogni caricamento della pagina. Fortunatamente non stanno cambiando la classe dell'iframe.

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

Questo funziona per voi.

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

Sto usando gem di oggetti di pagina. qui è il mio modo di fare clic come il tasto 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 
Problemi correlati