带有新窗口URL的窗口句柄

时间:2017-11-16 04:33:16

标签: selenium window-handles

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

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

获取URL(从第二个窗口)到新窗口

1 个答案:

答案 0 :(得分:1)

参考下面的代码片段,它会将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);
              }
    } 

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

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);