其实,我试图用java关闭硒自动化在当前操作后从当前窗口切换控制,以现有的窗口中硒自动化关闭当前窗口后如何切换到现有的窗口。有没有办法做到这一点。我能控制新开的窗口,做一些处理&关闭这一个。后来我只需要移动到已经存在的浏览器窗口。用java
Q
用java
0
A
回答
0
我才知道JS硒webdriver的有像driver.switchTo().window(windowName)
一个API可以帮助我们移动到另一个窗口。我对Java API并不是很熟悉,但它们几乎都是以相同的方式调用。希望这会帮助你。
0
你可以使用这个 -
private void handleMultipleWindows(String windowTitle) {
Set<String> windows = driver.getWindowHandles();
for (String window : windows) {
driver.switchTo().window(window);
if (driver.getTitle().contains(windowTitle)) {
return;
}
}
}
1
这是值得我用,这将检查所有打开的窗口,然后switchess控制到下一个窗口选项,收出旧的窗口。
protected final void switchWindows(boolean closeOldWindow) {
final WebDriver driver = checkNotNull(getDriver(), "missing WebDriver");
final String currentWindow = driver.getWindowHandle();
checkNotNull(currentWindow);
// switch to first window that is not equal to the current window
String newWindow = null;
for (final String handle : driver.getWindowHandles()) {
if (!currentWindow.equals(handle)) {
newWindow = handle;
break;
}
}
// if there's another window found...
if (newWindow != null) {
if (closeOldWindow) {
// close the current window
driver.close();
}
// ...switch to the new window
driver.switchTo().window(newWindow);
}
}
0
我有一个实用方法切换到所需的窗口如下所示
public class Utility
{
public static WebDriver getHandleToWindow(String title){
//parentWindowHandle = WebDriverInitialize.getDriver().getWindowHandle(); // save the current window handle.
WebDriver popup = null;
Set<String> windowIterator = WebDriverInitialize.getDriver().getWindowHandles();
System.err.println("No of windows : " + windowIterator.size());
for (String s : windowIterator) {
String windowHandle = s;
popup = WebDriverInitialize.getDriver().switchTo().window(windowHandle);
System.out.println("Window Title : " + popup.getTitle());
System.out.println("Window Url : " + popup.getCurrentUrl());
if (popup.getTitle().equals(title)){
System.out.println("Selected Window Title : " + popup.getTitle());
return popup;
}
}
System.out.println("Window Title :" + popup.getTitle());
System.out.println();
return popup;
}
}
一旦窗口的标题作为参数传递这将需要你所需的窗口。在你的情况下,你可以做。
Webdriver childDriver = Utility.getHandleToWindow("titleOfChildWindow");
,然后再次用同样的方法
Webdriver parentDriver = Utility.getHandleToWindow("titleOfParentWindow");
此方法有效地使用多个窗口
0
处理一旦你关闭当前窗口时,你会看到切换到父窗口父窗口。 要切换回你的父母/前一个窗口,你可以使用下面的命令,
driver.getUIWindowLocator()switchToFirstWindow()。 。
driver.switchTo()defaultContent();
命令。我认为这会对你有所帮助。
0
请做以下切换回基本窗口或原始窗口代码。
String vBaseWindowHandle = driver.getWindowHandle();
Set<String> windows = driver.getWindowHandles();
for(String temp : windows)
{
driver.switchTo().window(temp);
}
// Do code for new window
driver.close();
driver.switchTo().window(vBaseWindowHandle);
有关如何处理Windows和Selenium弹出式窗口的详细信息,请转到下面的URL。 https://trickyautomationworld.blogspot.in/2018/03/how-to-handle-windows-in-selenium.html https://trickyautomationworld.blogspot.in/2018/03/how-to-handle-popup-in-selenium.html
相关问题
- 1. 使用Java的Java
- 2. 用java java wami recoreder
- 3. 用java更新java?
- 4. 用java
- 5. 用java
- 6. 用java
- 7. 用java
- 8. 用java
- 9. 用java
- 10. 用java
- 11. 用java
- 12. 用java
- 13. 用JAVA
- 14. 用java
- 15. 用java
- 16. 用java
- 17. 用java
- 18. 用java
- 19. 用java
- 20. 用java
- 21. 用java
- 22. 用java
- 23. 用java
- 24. 用JAVA
- 25. 用java
- 26. 用java
- 27. 用java
- 28. 用java
- 29. 用java
- 30. 用java