在播放编码的UI测试时,某些元素需要很长时间才能被识别

时间:2015-03-27 11:15:08

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

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

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

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

我的代码是

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需要很长时间。

2 个答案:

答案 0 :(得分:0)

在firefox上使用Selenium,这是10秒,其中\ n按下输入并避免了悬停和点击元素的成本。

[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();
    }
}

答案 1 :(得分:0)

为避免机器人攻击,Google使用了动态容器来更改/包装搜索文件的位置,因此曾经起作用的脚本将不再起作用。

然后的想法是用更深的路径编写测试代码。即,不要只是将xpath放在搜索已归档文本的位置,也要放在其所属的Div和容器中。