【发布时间】:2017-09-03 10:57:48
【问题描述】:
这是我的问题: 我只是想运行基本测试,只是为了尝试一下,我一直遇到异常:“OpenQA.Selenium.WebDriverException:对远程 WebDriver 服务器的 HTTP 请求 URL (此处为 url) 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();
}
}
我正在运行一个基本测试以从不同的类登录到 wordpress 帐户,以使测试与逻辑分开:
[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"));
}
}
异常告诉我超时发生在这里:
loginSubmit.Submit();
我可以看到,在我开始运行页面后,页面仍在加载可能超过两分钟。
我在这里查看了有关同一异常的其他问题,但这些问题的答案似乎都没有帮助。
【问题讨论】:
标签: c# selenium selenium-chromedriver