Selenium Chrome驱动程序超时

时间:2016-12-20 06:28:26

标签: c# selenium selenium-chromedriver

我有一个触发5个控制台应用程序的代码(相同的代码库位于不同的位置)。

public static void RunLoadGenInstances(int loadGenInstanceCount, string exePath)
{
    try
    {
        for (int i = 1; i < loadGenInstanceCount; i++)
        {
            Thread.Sleep(1000);
            Process.Start(exePath + i + @"\bin\Debug\wm_uk_hr_loadgen.exe");
            Thread.Sleep(1000);
        }
    }
    catch (Exception ex)
    { 

    }
}

每个exe都会将ChromeDriver.exe从他们自己的可执行文件路径中移除,并打开Chrome。

ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("download.default_directory", file_path);
options.AddUserProfilePreference("disable-popup-blocking", "true");
options.AddArguments("--disable-extensions");
options.AddArguments("--start-maximized");
ChromeDriverService service = ChromeDriverService.CreateDefaultService(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
service.SuppressInitialDiagnosticInformation = true;
service.HideCommandPromptWindow = true;
string url = HRSSUrl;
chromeDriver = new ChromeDriver(service, options);
Thread.Sleep(500);
chromeDriver.Navigate().GoToUrl(url);


Console.WriteLine("Enter uid");
IWebElement idWait = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("__control0-user")));
IWebElement id = chromeDriver.FindElement(By.Id("__control0-user"));
id.SendKeys(c4cUserId);
Console.WriteLine("uid entered");
Console.WriteLine("Enter pwd");
IWebElement passWait = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("__control0-pass")));
IWebElement pass = chromeDriver.FindElement(By.Id("__control0-pass"));
pass.SendKeys(c4cPassword);
Console.WriteLine("pwd entered");
Console.WriteLine("click login");
IWebElement loginWait = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("__control0-logonBtn")));
IWebElement login = chromeDriver.FindElement(By.Id("__control0-logonBtn"));
login.Click();

问题是 - Chrome可以启动并导航到网址,但它仍然停留在登录页面上。这发生在4个控制台应用程序中,除了1,运行正常。以下是我从失败的应用程序中获得的异常消息。

Enter uid
   at OpenQA.Selenium.Support.UI.DefaultWait`1.ThrowTimeoutException(String exce
ptionMessage, Exception lastException)
   at OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)
   at wm_uk_hr_loadgen.Program.SelectAuthenticationDropDown() in c:\UK-HR\LoadGe
n-MultiInstance\LoadGen1\Program.cs:line 273
   at wm_uk_hr_loadgen.Program.Main(String[] args) in c:\UK-HR\LoadGen-MultiInst
ance\LoadGen1\Program.cs:line 105

有任何帮助吗?如果需要任何细节,请告诉我。

谢谢, Souvik

0 个答案:

没有答案