【问题标题】:Some elements take too long to be identified when playing your coded UI test播放编码的 UI 测试时,某些元素需要很长时间才能被识别
【发布时间】:2015-05-31 16:57:45
【问题描述】:

假设我有一个启动 Google.com 并搜索字符串的自动化测试用例。

  • 启动 google.com
  • 搜索“马来西亚航空公司”

我已经确定了搜索字段的所有必要属性,以便回放可以很容易地找到并运行它。但是,当我运行测试时,最多需要 10-14 秒才能在 Google.com 中找到搜索字段,然后在其中进行搜索。

我的代码是

BrowserWindow browser = BrowserWindow.Launch("www.google.com");
            UITestControl UISearch = new UITestControl(browser);
            UISearch.TechnologyName = "Web";
            UISearch.SearchProperties.Add("ControlType", "Edit");
            UISearch.SearchProperties.Add("Id", "lst-ib");
            Mouse.Click(UISearch);
            Keyboard.SendKeys(UISearch, "Malaysian Airline");

你们也可以试试。 Google.com 上几乎没有其他任何东西,但要找到我已经给出可能的元素和唯一的唯一 ID 需要很长时间。

【问题讨论】:

  • 请注意,google.com 上的搜索框并非位于主窗口的正下方,而是大约有 5-6 个控件将其包裹起来。尝试添加父控件,也许在两者之间添加另一个。录音机不必遍历所有这些 - 这很耗时,而是直接找到搜索框。
  • 所以没有好的解决方案可以直接解决搜索字段而不经过这么多控制层?
  • 不是很特别 - 要处理搜索字段 codedui 首先必须找到它,这是一项耗时的任务。您可以通过提供更准确的控制层次结构来帮助他完成这项任务。
  • Long 表示需要多少时间?超过 10 秒?

标签: c# visual-studio-2013 automated-tests ui-automation coded-ui-tests


【解决方案1】:

在 firefox 上使用 Selenium,\n 按下回车键的时间为 10 秒,避免了悬停和单击元素的成本。

[TestClass]
public class UnitTest1
{
    FirefoxDriver firefox;

    // This is the test to be carried out.
    [TestMethod]
    public void TestMethod1()
    {
        firefox = new FirefoxDriver();
        firefox.Navigate().GoToUrl("http://www.google.com/");
        IWebElement element = firefox.FindElement(By.Id("lst-ib"));
        element.SendKeys("Google\n");
    }

    // This closes the driver down after the test has finished.
    [TestCleanup]
    public void TearDown()
    {
        firefox.Quit();
    }
}

【讨论】:

  • 你不觉得 10 秒还是很长的时间。必须有某种方式来扫描控制层!
  • 我觉得没那么长。您需要记住,时间也包括启动浏览器、导航和加载网页。所以实际的测试逻辑可能是
  • 没错,Jamie Rees,如果您想运行多次迭代然后打开一个新问题,我们可以解决您可以使用已登录的同一浏览器窗口节省的时间。
  • 浏览器和网站在不到 5 秒的时间内准备就绪。然后谷歌页面在开始搜索之前保持静止 9 秒。原因是,谷歌搜索框在某些父类别或容器中很深,仅提供元素的属性是不够的。
  • @Firaun 您如何确定这是原因?
【解决方案2】:

为了避免机器人,Google 使用了一个动态容器来更改/包装搜索字段的位置,因此您曾经工作的脚本将无法再次工作。

然后的想法是编写具有完整更深路径的测试代码。即不要只将 xpath 放到搜索文本文件中,还要放到它所属的 Div 和容器中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多