有没有办法获得窗口标题而不在selenium中进行任何切换?
目前我正在使用以下代码:
public boolean switchToWindowByTitle(String title){
String currentWindow = driver.getWindowHandle();
Set<String> availableWindows = driver.getWindowHandles();
if (!availableWindows.isEmpty()) {
for (String windowId : availableWindows) {
String switchedWindowTitle=driver.switchTo().window(windowId).getTitle();
if ((switchedWindowTitle.equals(title))||(switchedWindowTitle.contains(title))){
return true;
} else {
driver.switchTo().window(currentWindow);
}
}
}
return false;
}
答案 0 :(得分:0)
ArrayList<String> tabs = new ArrayList<String> driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
String parentWindow=driver.getWindowHandle();
Set<String> windows= driver.getWindowHandles();
for(String child:windows){
try{
if(!child.equalsIgnoreCase(parentWindow)){
driver.switchTo().window(child);
String windowTitle=driver.getTitle();
if(windowTitle.equals("book My Show")){
System.out.println("Window found");
}
else{
System.out.println("no windows found");
}
}
}catch(Exception e){
e.printStackTrace();
System.out.println("");
}
}
driver.switchTo().window(parentWindow);
} }
答案 1 :(得分:-1)
此代码将达到目的。如下调用此函数 swithToWindow(“ window Name”);
public static Boolean switchToWindow(String title) {
String Parent_window = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
for(String handle : handles) {
driver.switchTo().window(handle);
if (driver.getTitle().equalsIgnoreCase(title)) {
return true;
}
}
driver.switchTo().window(Parent_window);
return false;
}