當我從www網站上的測試切換到我的本地主機版本時,此問題就開始了。在VS 2012中工作時,我將開始調試,以便本地主機處於活動狀態,分離進程以便測試,然後運行我喜歡的任何測試。對於一個非常簡單的例子:C#Webdriver - 在頁面加載之前,頁面標題斷言失敗
[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的Assert將返回false,即使它正在加載的頁面是正確的。我可以立即再次運行該測試,並且可以順利通過。運行它第三次,它可能會再次隨機失敗。我真的不知道是什麼原因造成的問題,任何幫助將不勝感激!
你可以嘗試在調試模式下運行項目嗎?在這種情況下你仍然得到相同的結果嗎? –
首先,刪除隱式等待。不要一直調用它,只需調用一次,它就是爲了駕駛員的生命而設置的。這是什麼版本的Firefox和Selenium?我建議在** Selenium嘗試訪問該頁面時,**在一個單獨的瀏覽器實例中手動訪問該頁面。這將有助於表明硒是否真的是問題。 – Arran
@Pat:我確實嘗試了「無需調試即可開始」,它似乎使問題不再頻繁,但仍然存在。 –