任何人都可以帮我解决selenium webdriver Java中的窗口处理问题。
我的应用程序中有3个或4个窗口,使用下面的代码成功打开2个窗口:当我想执行3窗口时,下面的代码重定向到第1个窗口,我无法执行超过2个窗口。
--------------------------------- CODE ------------- -------------------------------------------------- ---------------------------
String parent=driver.getWindowHandle();
CompanyClick.click();
Set<String>s1=driver.getWindowHandles();
int count=s1.size();
System.out.println("Total window" +count);
for(String child:s1)
{
if(!parent.equalsIgnoreCase(child)) {
driver.switchTo().window(child);
Thread.sleep(3000);
}
}
答案 0 :(得分:0)
我不确定100%,但在切换到帧之前尝试
driver.switchTo.defaultContent()
答案 1 :(得分:0)
伙计们,下面的代码正在运行!我找到了解决方案
String adminWindow = driver.getWindowHandle();
System.out.println(adminWindow);
ClickBuissness.click();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Set<String> allWindows = driver.getWindowHandles();
String agentWindow = null;
int count =allWindows.size();
System.out.println("Total window" + count);
for(String windowHandle : allWindows){
if (!windowHandle.equals(adminWindow))
agentWindow=windowHandle;
}
driver.switchTo().window(agentWindow);
}
答案 2 :(得分:0)
试试这个。
public void SwitchToAnotherWindow(Webdriver driver,int window_number){
List<String> windowlist = null;
Set<String> windows = driver.getWindowHandles();
windowlist = new ArrayList<String>(windows);
String currentWindow = driver.getWindowHandle();
if (!currentWindow.equalsIgnoreCase(windowlist.get(window_number - 1)))
{
driver.switchTo().window(windowlist.get(window_number - 1));
}
}
只需传递窗口编号要执行的窗口,例如如果要切换到3窗口只需将3传递给此方法,它可以直接随机播放到任何窗口 (例如:1到9个窗口,或9到4个窗口)