我正在使用selenium IDE和webdriver来测试Internet Explorer中的网页。我发现一段时间后,IE不会完全接受来自Selenium的命令,如果它不是焦点的窗口。例如,如果Selenium IDE窗口处于焦点,并且命令是单击IE中的按钮,则该按钮将按下,但它不会松开。
考虑到这一点,我的测试涉及弹出一个窗口,在其中执行一些操作,使其保持打开状态并返回到空窗口以执行一些操作,然后返回弹出窗口以获取更多命令。
当我需要执行空窗口的命令时,有没有办法让空窗口出现(通过弹出窗口)?反之亦然,当我需要返回时,我可以让弹出窗口出现吗?我尝试使用windowFocus
,但这不起作用。
答案 0 :(得分:4)
使用SwitchTo()方法和Interface
中的TargetLocator Selenium
。
一个非常简单的例子如下:
// Switch to new window
public String SwitchToNewWindow()
{
// Get the original window handle
String winHandleBefore = driver.getWindowHandle();
foreach(String winHandle in driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
}
return Constants.KEYWORD_PASS;
}
// Switch back to original window
public String switchwindowback()
{
String winHandleBefore = driver.getWindowHandle();
driver.close();
//Switch back to original browser (first window)
driver.switchTo().window(winHandleBefore);
//continue with original browser (first window)
return Constants.KEYWORD_PASS;
}
答案 1 :(得分:1)
我记得webdriver有时与运行非webdriver测试的行为不同。事实证明,在运行webdriver测试时,使用windowSelect后跟windowFocus在窗口之间切换。