selenium - 如何在selenium webdriver中将控制从子窗口切换到父窗口?

标签 selenium selenium-webdriver

  • 从父窗口我将控件传递给子窗口
  • 我正在子窗口中执行操作
  • 执行后,从子窗口会再打开一个窗口(Child 第一个子窗口的)。
  • 我必须关闭两个子窗口并返回到 父窗口。

    我无法将控件从子窗口切换到父窗口。我已经尝试过下面的代码

     String winHandleBefore = _driver.getWindowHandle();
    for(String winHandle : _driver.getWindowHandles()){
        _driver.switchTo().window(winHandle);
    }
    
    String winHandleAfter = _driver.getWindowHandle();
    

    /在子窗口中执行操作/

    driver.close();
    _driver.switchTo().window(winHandleBefore);
    

最佳答案

使用此代码:

 // Get Parent window handle
 String winHandleBefore = _driver.getWindowHandle();
 for (String winHandle : _driver.getWindowHandles()) {
   // Switch to child window
   driver.switchTo().window(winHandle);
 }

// Do some operation on child window and get child window handle.
String winHandleAfter = driver.getWindowHandle();

//switch to child window of 1st child window.
for(String winChildHandle : _driver.getWindowHandles()) {
  // Switch to child window of the 1st child window.
  if(!winChildHandle.equals(winHandleBefore) 
  && !winChildHandle.equals(winHandleAfter)) {
    driver.switchTo().window(winChildHandle);
   }
 }

// Do some operation on child window of 1st child window.
// to close the child window of 1st child window.
driver.close();

// to close the child window.
driver.close();

// to switch to parent window.
driver.switchto.window(winHandleBefore);

关于selenium - 如何在selenium webdriver中将控制从子窗口切换到父窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14620253/

相关文章:

python - 如何使用python selenium递归地点击一个按钮

Java Selenium - 从 HandsonTable 获取数据

python - 为什么即使使用代理,我的真实 IP 地址仍然可见?

java - 如何等待页面上滚动的元素

python - 使用 xpath 在 selenium python 中选择文本节点

java - 查看 ExpectedConditions 类,尝试找到 onChange

java - Gecko 驱动程序日志文件中的 IPDL 协议(protocol)错误 : Handler returned error code!

selenium - webdriverimplicitWait 未按预期工作

java - 系统中发现 Selenium 元素,但 Jenkins 中未发现

java - 为什么 selenium 中的 gettext() 返回 a-singlespace-b 而不是 a-multiplespaces-b?