【问题标题】:WebDriver: switch between driversWebDriver:在驱动程序之间切换
【发布时间】:2012-11-11 17:56:05
【问题描述】:

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

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

我可以正常使用 driver2。问题是,当尝试通过执行相同操作返回到 driver1 时,什么也没有发生!硒无法找到元素。甚至不适用于:

driver1.switchTo.window(driver1.getWindowHandle);

我该如何解决这个问题?

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

【问题讨论】:

  • 是的,但是如果我使用相同的驱动程序打开一个新窗口,我将无法获得预期的结果。 Selenium 是否支持使用多个驱动程序?我需要的是打开不同的浏览器进行用户验证。

标签: selenium webdriver


【解决方案1】:

做了一个快速测试:

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 来移动差异驱动程序的两个窗口。这是否解决了您的情况?

【讨论】:

  • 确实,不需要改变焦点。问题是在尝试使用 d2 之前实例化的页面处理对象时: page1 = PageFactory(d1, PageClass.class); --用page1做事-- page2 = PageFactory(d2, AnotherPageClass.class); --stuff with page2-- page1.someMethod() 在这里粉碎!我将尝试使用 d1.findElementBy.. 直接处理元素。
猜你喜欢
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 2013-04-12
  • 2016-05-17
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
相关资源
最近更新 更多