【问题标题】:Selenium WebDriver new tab and NavigateSelenium WebDriver 新选项卡和导航
【发布时间】:2014-10-21 03:45:24
【问题描述】:

基于这个post,我设法打开了一个新标签,但是当我尝试在新标签中导航时,导航发生在旧标签中。

我看到我应该使用这个:

driver.switchTo().window(windowName);

但是windowName 是什么?

【问题讨论】:

    标签: c# selenium


    【解决方案1】:

    你必须在这里使用窗口句柄功能。您要求在 c# 中提供解决方案。我将 java 与 selenium webdriver 一起使用。他们都会使用相似的概念。

    以下是 java 中的示例工作代码:

        String parentHandle = driver.getWindowHandle(); // get the current window handle
        System.out.println(parentHandle);               //Prints the parent window handle 
        String anchorURL = anchor.getAttribute("href"); //Assuming u are clicking on a link which opens a new browser window
        anchor.click();                                 //Clicking on this window
        for (String winHandle : driver.getWindowHandles()) { //Gets the new window handle
            System.out.println(winHandle);
            driver.switchTo().window(winHandle);        // switch focus of WebDriver to the next found window handle (that's your newly opened window)              
        }
    //Now your driver works on the current new handle
    //Do some work here.....
    //Time to go back to parent window
        driver.close();                                 // close newly opened window when done with it
        driver.switchTo().window(parentHandle);         // switch back to the original window
    

    希望这会有所帮助!

    【讨论】:

    • 不幸的是我不明白如何转换它。似乎你是从一个链接关注的,我只是打开一个新标签(一个没有数据的空白窗口),但我认为应该有一种方法来识别它
    • Selenium 将窗口的名称保存在一些称为 handles 的字符串中。在 C# 中,我们不使用 getter 和 setter,但 Properties: driver.WindowHandles 是获取所有句柄的方法,只需使用 .Last() 就可以得到你想要的
    • 您可以使用它来切换到 fra9001 提到的窗口句柄,而不是使用 for 循环。 driver.SwitchTo().Window(driver.WindowHandles.Last());
    • 这就是我的代码的样子(打开新标签+切换)IWebElement body = driver.FindElement(By.TagName("body")); body.SendKeys(Keys.Control + 't'); driver.SwitchTo().Window(driver.WindowHandles.Last());
    • 买的方式,没找到No Window found,也没有结果
    猜你喜欢
    • 2018-12-15
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多