我们假设我有一个自动化测试用例,可以启动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需要很长时间。
答案 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和容器中。