2011-11-02 15 views

risposta

13

Mechanize può fare molto. Usa net/http quindi qualunque cosa tu possa fare con net/http puoi fare con mechanize. Sebbene supporti molto di più secondo la loro descrizione:

La libreria Mechanize viene utilizzata per automatizzare l'interazione con i siti Web. Mechanize memorizza e invia automaticamente i cookie, segue i reindirizzamenti, può seguire i collegamenti e inviare moduli. I campi modulo possono essere compilati e inviati. Mechanize tiene anche traccia dei siti che hai visitato come una storia.

controlla questo link per alcune informazioni sull'utilizzo di JavaScript con mechanize: here

Sarebbe molto più facile da dire se mechanize supportare una specifica funzione/compito invece di passare attraverso tutto. Cosa stai cercando di fare esattamente?

Javascript è l'unica cosa che meccanizza non può fare. L'unica cosa che supporta la maggior parte del tempo è la visualizzazione di collegamenti Javascript. vale a dire utilizzando page.links.each {|link| puts link.text} verrà visualizzato anche Javascript, ma non sarà possibile fare clic/selezionarli.

In termini semplici, Watir supporta Javascript. In realtà è il tuo browser che supporta javascript e Watir controlla il browser.

Watir esegue un browser reale (FF, Chrome, IE) e controlla a livello di programmazione quel browser. Funziona esattamente come un utente quando accede a un sito web. Questo è ciò che ti permette di usare javascript. Watir controlla solo il browser e il browser è quello che invia le richieste e riceve le risposte e la rende/elabora tutto. Sei limitato dalla velocità del browser che utilizzi.

Mechanize d'altra parte si comporta come un proprio "browser" ed è molto più veloce di Watir, in quanto non esegue il rendering delle pagine. Parla direttamente con il server ed elabora la risposta non elaborata. Mechanize è limitato dalla velocità di connessione.

Watir verrebbe utilizzato su Mechanize quando è necessario guardare e vedere cosa succede, utilizzare javascript o fare qualsiasi cosa relativa alla GUI. Mechanize è molto più veloce ed è utile per testare la struttura effettiva del sito web. (collegamenti di test/accessi/ecc.)

+1

Tecnicamente, Watir supporta solo IE. Per eseguire FireFox (versioni correnti), Chrome, Opera o operare senza headless, è necessario utilizzare Watir-Webdriver. (La stessa API Watir di base, ma usa webdriver per controllare i browser) Esiste anche un metodo .execute_script, ma generalmente è disapprovato poiché non è qualcosa che un utente può fare, tuttavia in alcuni casi è il modo più semplice per aggirare l'evento complicato comandi controllati –

+1

Watir può funzionare su server Linux senza "display"? come verrà aperto il browser senza display del sistema operativo? –

+1

Avresti bisogno di andare senza testa, non l'ho mai provato e non saprei come farlo. Forse guarda la gemma Mechanize invece. –

Problemi correlati