Selenium WebDriver:在驱动程序之间切换

Selenium WebDriver:在驱动程序之间切换,selenium,webdriver,Selenium,Webdriver,要测试应用程序的功能,我需要使用两个不同的驱动程序,因为使用一个驱动程序,我无法获得预期的行为。我可以像这样切换到第二个驱动程序(driver2): driver2.getWindowHandle(); driver2.getWindowHandles(); 我可以正确地使用驱动程序2。问题是,当尝试通过同样的操作返回到driver1时,什么都没有发生!硒元素无法找到元素。即使在以下情况下也不起作用: driver1.switchTo.window(driver1.getWindowHandl

要测试应用程序的功能,我需要使用两个不同的驱动程序,因为使用一个驱动程序,我无法获得预期的行为。我可以像这样切换到第二个驱动程序(driver2):

driver2.getWindowHandle();
driver2.getWindowHandles();
我可以正确地使用驱动程序2。问题是,当尝试通过同样的操作返回到driver1时,什么都没有发生!硒元素无法找到元素。即使在以下情况下也不起作用:

driver1.switchTo.window(driver1.getWindowHandle);
我怎样才能解决这个问题

测试流程将是driver1、drvier2、driver1(无法执行此操作),最后是driver2。

进行了快速测试:

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();

适合我..我不必使用getwindowhandle在diff驱动程序的两个窗口之间移动。这是否解决了您的情况?

是的,但是如果我用同一个驱动程序打开一个新窗口,则无法获得预期的结果。Selenium是否支持使用多个驱动程序?我需要的是打开不同的浏览器进行用户验证。事实上,不需要改变焦点。问题是在使用d2:page1=PageFactory(d1,PageClass.class)之前尝试处理实例化页面的对象时--使用page1做事情——page2=PageFactory(d2,另一个PageClass.class)--page2的东西——page1.someMethod()在这里很受欢迎!我将尝试直接使用d1.findElementBy.处理元素。。