当我从 www 网站上的测试切换到我的本地主机版本时,这个问题就开始了。在 VS 2012 中工作,我将开始调试,以便 localhost 处于活动状态,分离进程以便我可以对其进行测试,然后运行我喜欢的任何测试。对于一个非常基本的示例:
[Test]
public void CanGoToHomePage()
{
Pages.HomePage.Goto();
Assert.IsTrue(Pages.HomePage.IsAt());
}
它引用的函数在这里:
public class HomePage
{
const string Url = "http://localhost:3738";
const string HomepageTitle = "FunnelFire - Home Page";
public void Goto()
{
Browser.Goto(Url);
}
public bool IsAt()
{
return Browser.Title == HomepageTitle;
}
}
而这里的实际硒代码:
public static class Browser
{
static IWebDriver webDriver = new FirefoxDriver();
public static void Goto(string url)
{
webDriver.Manage().Window.Maximize();
webDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
webDriver.Url = url;
}
}
现在的问题。我在浏览器中添加的 10 秒隐式等待确实在加载页面后最多等待 10 秒以查看它是否可以找到我想要它找到的任何信息,这不是问题。
正如我之前所说,在我切换到在 localhost 上进行测试后,突然我遇到了一个奇怪的问题,页面将开始加载(即屏幕仍然完全是白色的,没有完成),甚至有时下一个页面几乎没有完成加载并突然测试会启动并失败,指向 IsAt 的断言返回 false,即使它正在加载的页面是正确的。我可以立即再次运行该测试,它会毫无问题地通过。第三次运行它,它可能会再次随机失败。老实说,我不确定是什么导致了这个问题,任何帮助将不胜感激!