gpt4 book ai didi

ruby-on-rails-3 - 获取窗口的标题而不将其聚焦在 Capybara/Selenium 中

转载 作者:行者123 更新时间:2023-12-04 07:21:57 25 4
gpt4 key购买 nike

我有一个应用程序,用户可以在其中查看 2 个可能的浏览器窗口/选项卡。

如果用户在窗口 2 中并且事件发生在窗口 1 中,我使用 JQuery Title Alert (https://github.com/heyman/jquery-titlealert) 更改标题栏的文本作为通知方式他们知道窗口 1 中正在发生某些事情。标题文本更改将闪烁,直到窗口 1 获得焦点。

一切正常。但是,我想使用 capybara 和 Selenium 对此进行集成测试,我遇到了一个有趣的问题。虽然我可以使用类似的东西轻松地在窗口之间切换:

      page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)

我希望能够获取未聚焦 窗口的文本来测试它的文本是否已更改。有谁知道如何:

  1. 获取所有窗口的标题?
  2. 检查窗口的属性而不切换到它/专注于它?
  3. 还有其他方法可以解决这个问题吗?

在此先感谢您的帮助!

最佳答案

您可以使用具有 GetAllWindowTitles()WebDriverBackedSelenium。它应该在最新版本 2.19 的 Ruby 中工作。以下 C# 示例有效。

IWebDriver driver = new FirefoxDriver();
ISelenium browser = new WebDriverBackedSelenium(driver, driver.Url);
browser.Start();

// open a test page and some popup windows
browser.Open(@"Test.html"); // open the main page which has title 'My Main Window'
browser.Click("btnPop1"); // open a popup window with title 'My Popup 1'
browser.Click("btnPop2"); // open a popup window with title 'My Popup 2'

string[] titles = browser.GetAllWindowTitles();
foreach (string title in titles)
{
Console.WriteLine(title);
}
browser.Close();
Console.ReadLine();

输出符合预期:

My Main Window
My Popup 1
My Popup 2

关于ruby-on-rails-3 - 获取窗口的标题而不将其聚焦在 Capybara/Selenium 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com