【问题标题】:Run Selenium tests in new window在新窗口中运行 Selenium 测试
【发布时间】:2012-07-14 09:59:18
【问题描述】:

我正在尝试使用 Selenium GUI(在 Firefox 中)记录测试。该应用程序使用图像作为超链接,如下所示:

<a class="mainheading" align="center" target="_blank" href="https://myapps.web.com/prepaid/customer/index.jsp"> <img width="256" height="57" border="0" alt="customer" src="images/customer.jpg"/> </a>

现在,当我们点击上图时,a href 标签会打开另一个窗口。新窗口打开后,我需要在该窗口中执行其余测试。问题是当我记录测试时,Selenium GUI 无法理解我正在执行的任何操作都在新窗口中。因此,即使它适当地记录了操作,当我运行预先记录的测试时,我也会收到一个错误,指出找不到元素。我认为发生这种情况是因为 Selenium 仅尝试在原始窗口中查找元素(而不是在由于上述 a href 而打开的新窗口中)。

我尝试使用 Google,但我得到的解决方案与我上面的情况不匹配(即 a href 打开新窗口而不是 window.open)。有人可以请教吗?

谢谢。

【问题讨论】:

    标签: selenium selenium-webdriver


    【解决方案1】:

    您可以像这样使用驱动程序窗口句柄:

    // Get a list of window identities
    List<string> windowIdentities = driver.WindowHandles.ToList();
    
    // Switch control over to the other window
    driver.SwitchTo().Window(windowIdentities[1]);
    

    这是用 C# 编写的,但如果你用不同的语言编写它应该不会有太大的不同。让我知道这是否适合您!

    【讨论】:

      【解决方案2】:

      您需要先移动到新窗口,然后再对其执行操作。为此,如果您使用的是 webdriver,则可以使用 switchTo.window,否则在 ide 中,应该有 selectwindow 以移动到相应的窗口,然后在那里继续您的操作。

      【讨论】:

        猜你喜欢
        • 2016-10-24
        • 2011-03-28
        • 2011-05-10
        • 2019-12-17
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多