2012-11-23 123 views
0

要測試應用程序的功能,我需要使用兩個不同的驅動程序,因爲使用一個驅動程序我無法獲得預期的行爲。我可以切換到第二個驅動器(驅動2)所示:WebDriver:在驅動程序之間切換

driver2.getWindowHandle(); 
driver2.getWindowHandles(); 

我可以用驅動2正常工作。問題是,當試圖回到driver1做同樣的事情沒有發生!硒無法找到元素。即使:

driver1.switchTo.window(driver1.getWindowHandle); 

我該如何解決這個問題?

測試的流程是driver1,drvier2,driver1(無法做到這一點),最後是driver2。

+0

是的,但如果我用相同的驅動程序打開一個新窗口,我無法得到預期的結果。 Selenium是否支持使用多個驅動程序?我需要的是打開不同的瀏覽器進行用戶驗證。 – matt

回答

0

做了一個快速測試:

FirefoxDriver d1 = new FirefoxDriver(); 
FirefoxDriver d2 = new FirefoxDriver(); 
d1.get("https://www.google.com"); 
d2.get("https://www.google.com"); 
d1.findElementByName("q").sendKeys("cheese"); 
d2.findElementByName("q").sendKeys("paneer"); 
d1.quit(); 
d2.quit(); 

Works的me..I不必使用getwindowhandle周圍的DIFF驅動程序的兩個窗口移動。這是否解決您的情況?

+0

事實上,不需要改變重點。問題是在使用d2之前嘗試處理頁面實例化的對象時:page1 = PageFactory(d1,PageClass.class); - 使用page1 - page2 = PageFactory(d2,AnotherPageClass.class); - 頁面2 - page1.someMethod()粉碎在這裏!我將嘗試直接使用d1.findElementBy處理元素。 – matt

相關問題