2017-04-07 13 views
2

ここに私の問題があります: 私はちょうどこれを試して、基本的なテストを実行しようとしています。 "OpenQA.Selenium.WebDriverException:URL (ここのURL)のタイムアウト後にリモートWebDriverサーバーへのHTTP要求が"となっています。OpenQA.Selenium.WebDriverException:URLのリモートWebDriverサーバーへのHTTP要求が60秒後にタイムアウトしました

最新のSelenium(3.3.0)と最新のSelenium Support(3.3.0)を使用しています。

私はドライバを設定している:

public static class Driver 
{ 
    public static IWebDriver Instance { get; set; } 

    public static void Initialize() 
    { 

     Instance = new ChromeDriver(); 
    } 

    public static void Close() 
    { 
     Instance.Close(); 
    } 
} 

を私はロジックから分離テストを保つために、別のクラスから、ワードプレスのアカウントにログインするための基本的なテストを実行しています:

[TestMethod] 
    public void Test_LogIn() 
    { 
     WordPressLoginPage.GoTo(); 
     WordPressLoginPage.LoginAs("*******").WithPassword("*******").Login(); 
    } 

そして、ここではテストを呼び出しているメソッドです。

public class WordPressLoginPage 
{ 
    private const string LoginUrl = "https://wordpress.com/wp-login.php"; 

    public static void GoTo() 
    { 
     Driver.Instance.Navigate().GoToUrl(LoginUrl); 
     var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(5)); 

     wait.Until(d => d.SwitchTo().ActiveElement().GetAttribute("id") == ("user_login")); 
    } 

    public static LoginCommmand LoginAs(string userName) 
    { 
     return new LoginCommmand(userName); 
    } 
} 

public class LoginCommmand 
{ 
    private readonly string _userName; 
    private string _password; 

    public LoginCommmand(string userName) 
    { 
     _userName = userName; 
    } 

    public LoginCommmand WithPassword(string password) 
    { 
     _password = password; 
     return this; 
    } 

    public void Login() 
    { 
     var loginInput = Driver.Instance.FindElement(By.Id("user_login")); 
     loginInput.SendKeys(_userName); 

     var passwordInput = Driver.Instance.FindElement(By.Id("user_pass")); 
     passwordInput.SendKeys(_password); 

     var loginSubmit = Driver.Instance.FindElement(By.Id("wp-submit")); 
     loginSubmit.Submit(); 

     var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(65)); 

     wait.Until(d => d.SwitchTo().ActiveElement().GetAttribute("id") == ("search-component-1")); 
    } 
} 

例外がティメオことを私に伝えますUTはここに起こる:

   loginSubmit.Submit(); 

と私はそれを実行し始めた後にページがおそらくまだ2分以上ロードしていることがわかります。

私はここで同じ例外に関して他の質問を見てきましたが、それらの回答のどれもここでは役に立たないようです。

答えて

0

私のフレームワークでもこの問題が発生していましたが、個々のテストが実行されたときではありませんでした。これは複数のテストを並行して実行していて、常にChromeDriverの.Submit()メソッドで問題が発生していました。

これを修正するために、代わりに送信ボタンをクリックするようにスクリプトを修正する必要がありました。この後、私のスクリプトは正常に動作しました。

私はWebDriverとSupportパッケージv3.4.0、ChromeDriver v2.29.0、Chrome v58.0.3029.110を使用しています。

0

この問題も発生しました。この問題は、パスワードのパススルーによって発生しました。テストチームは、同じ資格情報、ユーザー名:Xとパスワード:Yを使用して仮想マシンにサインインしていました。類似して、テストしていたアプリケーションを保存した仮想マシンも同じ資格情報を持っていました。

しかし、特定の時点で、開発者の1人がパスワードをYからZに変更しました。したがって、サーバーの応答を要求する認証がバックグラウンドで失敗していました。あなたは、テストプロジェクトのために何らかの形の認証サービスが事実上必要です。良いスタートポイントについては下記をご覧ください:

https://sqa.stackexchange.com/questions/2277/using-selenium-webdriver-with-windows-authentication

関連する問題