使用 Java 处理 Selenium 中的多个 Windows
Handlng the Multiple Windows in Selenium By using Java
任何人都可以帮我解决 windows 在 selenium webdriver Java 中的处理问题。
我的应用程序中有 3 或 4 个 windows,使用以下代码成功打开了 2 个 windows:当我想使用以下代码执行 3 window 时,它会重定向到第一个window,我无法执行超过 2 个 windows。
--------------------------------代码------------ ---------------------------------------------- ----------------------------
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);
}
}
我不确定 100% 但在切换到框架之前尝试
driver.switchTo.defaultContent()
伙计们,下面的代码有效!我找到了解决方案
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);
}
试试这个。
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));
}
}
只需传递 window number 你想要执行的 window 例如,如果你想切换到 3 window 只需将 3 传递给它方法,可以直接shuffle到任意window
(对于 ex:1 到 9 window,或 9 到 4 window )
任何人都可以帮我解决 windows 在 selenium webdriver Java 中的处理问题。
我的应用程序中有 3 或 4 个 windows,使用以下代码成功打开了 2 个 windows:当我想使用以下代码执行 3 window 时,它会重定向到第一个window,我无法执行超过 2 个 windows。
--------------------------------代码------------ ---------------------------------------------- ----------------------------
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);
}
}
我不确定 100% 但在切换到框架之前尝试
driver.switchTo.defaultContent()
伙计们,下面的代码有效!我找到了解决方案
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);
}
试试这个。
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));
}
}
只需传递 window number 你想要执行的 window 例如,如果你想切换到 3 window 只需将 3 传递给它方法,可以直接shuffle到任意window (对于 ex:1 到 9 window,或 9 到 4 window )