【问题标题】:can't see the HTML of a popup window how to interact with it from selenium看不到弹出窗口的 HTML 如何从 selenium 与之交互
【发布时间】:2025-12-14 03:40:01
【问题描述】:

我正在尝试从一个新的弹出窗口中选择 Status。单击选择状态按钮后,它会打开对话框页面,但我看不到该页面的 HTML。所以不确定如何从 selenium 与该对话框页面进行交互。

注意:我已切换到新窗口,但无法从那里继续。

HTML 看起来像这样..

点击选择状态按钮后,对话框页面打开。

但我可以看到对话框页面的 html,那么如何与 selenium 进行交互?

更新 -14/09/17

当我点击选择状态时,它会调用以下网址。在单独的选项卡中打开 url 并能够看到 HTML。

http://xxx.xxx.xxx.int/tasks/status.aspx?CurrFilters=OPEN

尝试从新窗口中选择一个值,如下所示...

    public void SelectStatus()
    {
        _SelectStatus.Click();
        Browser.Switch_to_child_page();
        _container.FindElement(By.CssSelector("input[onclick^='SelectAll']")).Click();
    }

出现以下错误。

测试“x.RegressionSuite.TestCases.xTest.TC_x”失败: OpenQA.Selenium.StaleElementReferenceException:元素不再是 有效

【问题讨论】:

  • 新窗口内有框架吗?
  • 弹出窗口是一个单独的浏览器实例。您是否尝试过查看启动页面的 HTML?也许您可以在弹出窗口中获取页面的 URL 并直接导航到它以访问 HTML。
  • 我不认为你可以分享网址?
  • 当我点击选择状态时,它会调用一个单独的 url。更新了问题。请看一看。

标签: html selenium testing automated-tests ui-automation


【解决方案1】:

它看起来像新窗口弹出。你可以切换到新窗口。然后与之互动。

// Store the current window handle
String winHandleBefore = driver.getWindowHandle();

// Perform the click operation that opens new window

// Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
    driver.switchTo().window(winHandle);
}

//select the checkbox
driver.findElement(By.xpath("xpath for checkbox")).click();

//click on select button
driver.findElement(By.xpath("xpath for submit")).click();

// Close the new window, if that window no more required
driver.close();

// Switch back to original browser (first window)
driver.switchTo().window(winHandleBefore);

【讨论】:

  • 我正在移动到新窗口,但问题是如何选择复选框,因为我看不到 html?
  • 请在新窗口中使用页面源或开发者工具获取新窗口的html。
  • 不确定如何获取页面源,因为我无法右键单击页面。尝试了不同的浏览器。如果我右键单击它,只有两个选项... 1. 移动 2. 关闭。
  • 尝试按 F12 打开开发者工具。它可能有效
  • 没有伴侣,同样的结果。我感觉被困住了。
最近更新 更多