在播放您的编码 UI 测试时,某些元素花费的时间太长而无法识别

Some elements take too long to be identified when playing your coded UI test

假设我有一个启动 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 的元素。

在 firefox 上使用 Selenium \n 按下 enter 需要 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();
    }
}

为了避免机器人 Google 使用一个动态容器,changes/wraps 搜索字段的位置因此你的脚本曾经工作将不再工作。

当时的想法是用更深的路径编写测试代码。即不要只将 xpath 放在搜索文本文件中,还要放在 Div 和它所属的容器中。