其實,我試圖用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