如果我们为父窗口设置Firefox配置文件,当我们使用" driver.switchTo()时,它会被转发到子窗口.window(子窗口ID)

时间:2015-06-22 13:39:47

标签: selenium-webdriver

我对父母和子女窗口处理有疑问。如果我们为父窗口设置Firefox配置文件,当我们使用" driver.switchTo()。window(子窗口ID)"时,它将被转发到子窗口。或者我们需要再次明确地设置配置文件。

还有一个疑问是.....当我们执行driver.switchTo()。window(父窗口Id)时,是否会将配置文件重新分配给父级?

谢谢, Raje

2 个答案:

答案 0 :(得分:0)

首先,您需要使用名称或窗口句柄来回切换到新打开的窗口。见this

windowHandles 而言,您必须找到它们的运行时,因为它们是动态生成的。窗口句柄每次都不一样。因此将它们保存到分析器中无济于事。

另一方面,如果您只需要处理父窗口,那么就不需要对窗口句柄或类似的东西做任何事情。 Selenium默认处理Parent窗口。

答案 1 :(得分:0)

当我们切换到子窗口时,为父窗口设置的Firefox配置文件不会转发到子窗口。这回答了你的第一部分问题。

实际上,使用getWindowHandle()方法切换Window,该方法返回在驱动程序实例中唯一标识它的句柄。如果查看方法定义,它将返回一个字符串,并且不会转发配置文件。

  

public java.lang.String getWindowHandle()

其次,我们无法再次显式设置配置文件,因为在初始化WebDriver之前设置了配置文件。子窗口将使用为该窗口设置的配置文件。切换到父窗口时,该窗口的配置文件不会发生变化。这回答了第二部分。

使用该配置文件初始化驱动程序后,无法为WebDrivers更改浏览器配置文件。因此,不同驱动程序的Windows将为它们设置相应的配置文件,之后无法重新分配。