2009-05-04 5 views
5

Sto tentando di utilizzare Selenium IDE per fare clic su un file SWF in una pagina HTML. L'ID DIV e la modifica dell'ID di incorporamento dipendono dal timestamp, ad es. id="FLASH_0_23458974594", ho provato a utilizzare id=/^FLASH_([0-9]+_)[0-9]([0-9]+)/ o id="FLASH_glob:*" ma l'IDE non sta recuperando il swf. Sto facendo qualcosa di sbagliato qui?Utilizzare il selenio per fare clic su un swf

Grazie.

risposta

3

Hai provato a contenere?

click | //object[contains(@id,'FLASH_')] 
+0

ho appena fatto, e non ha funzionato. Ho ricevuto questo errore: [errore] locator non trovato: // oggetto [contiene (@ id, 'FLASH_')], errore = Errore: Elemento // oggetto [contiene (@ id, 'FLASH_')] non trovato – JLau

+0

Hai appena visto che stai usando tag embed. Potrebbe essere necessario sostituire "oggetto" con "incorporato". Altrimenti, puoi aggiungere l'HTML pertinente dalla pagina alla tua domanda. –

+0

IDE in grado di rilevarlo tramite embed, ma non lo fa clic. Nel registro mostra - [info] Esecuzione: | click | // embed [contains (@ id, 'FLASH_')] | | ma non lo fa clic. – JLau

2

Cliccando sul oggetto Flash non funziona. L'unico modo noto per automatizzare Flash utilizzando Selenium è quello di esporre le funzioni dell'interfaccia utente nell'oggetto Flash tramite JavaScript. Quindi puoi chiamare quel JavaScript usando la funzione getEval() in Selenium RC.

0

Utilizziamo il client Java per il selenio e talvolta i nostri test utilizzano Java Robot per spostare il mouse e fare clic quando non è possibile interagire direttamente con il browser web. Ciò ha aspetti negativi (come il browser deve essere in primo piano e la precisione può essere un po 'complicato) ma quando si eseguono i test in una macchina virtuale questi aspetti negativi sono ridotti al minimo.

1

Questo argomento è piuttosto vecchio, ma come ho speso molte volte per trovare una soluzione, rispondo a questa domanda. Come detto @Zugwalt, è possibile utilizzare la classe Java Robot. Ma nel caso in cui si usi Selenium Grid e quindi RemoteWebDriver, è possibile utilizzare jsch per aprire una connessione SSH alla macchina remota e chiamare xdotool per fare clic su una determinata posizione.

Si può vedere un esempio di questo Gist

+1

Il mio ultimo lavoro che abbiamo iniziato a utilizzare [Sikuli] (http://www.sikuli.org/) con il webdriver, ha funzionato abbastanza bene per noi. – JLau