【问题标题】:Window handles with new Window URL具有新窗口 URL 的窗口句柄
【发布时间】:2017-11-16 04:33:15
【问题描述】:

Windows 如何在 selenium 中处理将 URL 从第二个窗口粘贴到新窗口

当我在此表单中提交所有信息 (https://equallevel.com/punchout/cxml-punchout-tester#advanced) 时,它会打开一个新窗口。在新窗口中,它会重定向到我需要进行一些用户交互的另一个站点。此时,我在最后一个重定向站点中有 iframe .所以我想从这里获取该 URL 并将其放在另一个选项卡中以执行用户操作 如何从 getWindowHandles() 获取 URL(从第二个窗口)到新窗口

【问题讨论】:

  • 你能分享你的代码试验吗?

标签: selenium window-handles


【解决方案1】:

参考下面的代码sn-p,它将URL返回一个String变量。

public void switchWindow(String name){
        String URL = null;
        wait.waitForWindowToBeActiveAndSwitchToIt(2);
   System.out.println(driver.getWindowHandles().size());

          for (String current : driver.getWindowHandles()) {
              if(driver.getTitle().equals(name)){
              System.out.println("Switched to window titled =>" +driver.getTitle());
              URL = driver.getCurrentUrl();
              break;
              }

              System.out.println("Switching to window handle:"+ current + "\n title: "+ driver.getTitle());
              driver.switchTo().window(current);
              }
    } 

要在新标签页中打开此 URL,请执行以下操作:

driver.FindElement(By.CssSelector("body")).SendKeys(Keys.Control + "t");        
string newTabInstance = driver.WindowHandles[driver.WindowHandles.Count-1].ToString();
driver.SwitchTo().Window(newTabInstance);
driver.Navigate().To(URL);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2013-11-11
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多