我们的测试用例中有一个场景,我们必须将控制从父窗口切换到子窗口(单独)。
我们可以使用以下代码在Chrome和FF上执行此操作:
Set<String> winHandles = gblConstants.objdriver.getWindowHandles();
System.out.println(gblConstants.objdriver.getWindowHandles().size());
for (String winHandle : winHandles )
{
if(!(winHandle.equals(Keywords.parentWindowHandle)))
{
WebDriver driver = gblConstants.objdriver.switchTo().window(winHandle);
blnRes = true;
driver.window().maximize();
break;
}
}
但是当我们尝试在 IE11 上执行上述代码时,执行会冻结在:
WebDriver driver = gblConstants.objdriver.switchTo().window(winHandle);
客户端:Java,
Selenium WebDriver - 2.46
操作系统:Windows 7
请帮助完成这项工作。提前谢谢。
答案 0 :(得分:1)
我遇到了类似的问题,直到有人提醒我运行我们用来设置IE进行webdriver测试的配置脚本。可能这些人中的一个(或多个)会为你做这个伎俩。我的测试至少不再悬而未决。
@ECHO OFF
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom" /v "ZoomFactor" /t REG_DWORD /d 0x000186a0 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1" /v "2500" /t REG_DWORD /d 0x00000000 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2500" /t REG_DWORD /d 0x00000000 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /v "2500" /t REG_DWORD /d 0x00000000 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\4" /v "2500" /t REG_DWORD /d 0x00000000 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Check_Associations" /t REG_SZ /d "no" /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation" /v "IntranetCompatibilityMode" /t REG_DWORD /d 0x00000000 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Recovery" /v "AutoRecover" /t REG_DWORD /d 0x00000002 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "Flags" /t REG_DWORD /d 0x00000043 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\global.pvt\*.pbi" /v "*" /t REG_DWORD /d 0x00000002 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2101" /t REG_DWORD /d 0x00000000 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client" /v "RemoteDesktop_SuppressWhenMinimized" /t REG_DWORD /d 0x00000002 /f
答案 1 :(得分:0)
我假设新版本的selenium不能正确支持IE11。请尝试使用以下代码。它看起来类似于你的代码。但是,它可能会奏效。
String parentWindow = driver.getWindowHandle(); 设置handles2 = driver.getWindowHandles(); for(String windowHandle:handles2) { 如果(!windowHandle.equals(parentWindow)) { 。driver.switchTo()窗口(windowHandle); driver.window()最大化(); 打破; } }