【发布时间】:2015-08-28 13:17:42
【问题描述】:
亲爱的朋友和同事
这是一个奇怪的场景,或者可能有人已经面临这个问题并不确定,但你自己看看。
考虑使用 PageFactory 方法初始化的 5 个字段。登录页面上的 3 个字段已加载到 DOM 中,其余 2 个(登录后的主页)字段尚未加载到 DOM 中。
现在,当我使用网格在其他客户端上从我的机器远程启动登录测试时,它工作正常。
但是当我使用网格在同一客户端上从另一台机器远程启动测试时不起作用。
我的工具集 语言绑定 => C# WebDriver 2.47.0, TestRunner => Gallio/mBUnit, Browser => Any(Chrome/FF), DotNet Grid Standalone Server 2.47.1
我有一个登录功能,其中所有页面元素都通过如下所示的 PageFactory 方法初始化
公共登录功能(驱动程序)
{
PageFactory.InitElements(driver, this);
}
元素声明如下
[FindsBy(How = How.CssSelector, Using = @"#UserName")]
[CacheLookup]
public IWebElement UserNameTextField { get; set; }
[FindsBy(How = How.CssSelector, Using = @"#Password")]
[CacheLookup]
public IWebElement PasswordTextField { get; set; }
[FindsBy(How = How.CssSelector, Using = @".span2>input")] //input[@value='Sign in']")]
[CacheLookup]
public IWebElement LoginButton { get; set; }
[FindsBy(How = How.XPath, Using = @"//h2[contains(text(),'Welcome, admin')]")]
[CacheLookup]
public IWebElement WelcomeFormMessageText { get; set; }
[FindsBy(How = How.Id, Using = @"tabslist")]
[CacheLookup]
public IWebElement MainTabsList { get; set; }
现在当 PageFactory.InitElements(driver, this);语句执行时,在初始化 DOM 中实际上不存在的 WelcomeFormMessageText IWebElement 时测试失败。登录成功后,这些元素会出现在主页上。
现在的问题是,当我从我的机器上运行它时,相同的测试运行良好,而当我从另一台机器上运行它时却失败了:-(
两台机器配置相同,具有相同的操作系统、浏览器版本、位系统等。
我尝试在第三台机器上运行测试,但也失败了。它似乎只从我的 m/c 运行。
有人看过这个问题吗?或者有什么线索?
提前致谢。
【问题讨论】: