2012-10-24 15 views
5

Sto lavorando a un progetto che comporta l'utilizzo intenso del Selenium WebDriver e di un profilo di Firefox specifico per trovare elementi e gestire la pagina.
Selenium Grid, come utilizzare WebDriver con ThreadSafeSeleniumSessionStorage.session()

Per esempio,
driver.findElement(By.xpath("//*[@id='foobar']"));
e
driver.manage().refresh();

Sto cercando di implementare Selenio griglia nel mio progetto; tuttavia, con l'uso estensivo di Selenium WebDriver, esiste un modo per avviare l'oggetto statico ThreadSafeSeleniumSessionStorage.session() con uno specifico WebDriver?

Per quanto ho studiato, è possibile ottenere il WebDriver dall'oggetto Selenio da:

startSeleniumSession(seleniumHost, seleniumPort, browser, webSite); //Create and start the session() object 
//TODO: insert a specific WebDriver into the session() object 
WebDriver driver = ((WebDriverBackedSelenium) session()).getWrappedDriver(); //Get the WebDriver from the session() object 

risposta

2

Non ho provato questo codice, ma se funziona, allora si avrebbe un oggetto che contiene WebDriver basato su selenio. Per quanto ne so, questa funzione è disponibile per la migrazione da Selenium 1 a Selenium 2. Questo non è il metodo consigliato per rendere sicuri i thread dei driver Web.

WebDriver per impostazione predefinita non è thread-safe. Consiglierei di creare un'istanza di WebDriver per ogni thread.

+0

Puoi dare un po 'di informazioni su come fare per fare questo? –

+0

ad es. Se vuoi parallelizzare i tuoi corsi di prova, puoi ottenere un WebDriver per classe ... –

0

È possibile esaminare l'implementazione della classe ThreadSafeSeleniumSessionStorage e utilizzare la stessa logica per creare un nuovo ThreadSafeWebdriverSessionStorage. Non puoi? La fonte è here

Utilizza la classe ThreadLocal. Non dovrebbe essere difficile da implementare.

Problemi correlati