TestStack / TestStack.Seleno

Seleno helps you write automated UI tests in the right way by implementing Page Objects and Page Components and by reading from and writing to web pages using strongly typed view models.
http://teststack.github.com/TestStack.Seleno/
MIT License
180 stars 60 forks source link

TimedOut after 60 seconds #250

Open wijdench opened 7 years ago

wijdench commented 7 years ago

Hi,

I want to navigate to another page by button click. public T SubmitApplication<T>() where T : UiComponent, new() { return Navigate.To<T>(By.CssSelector(".login-button > button")); }

But i get this error : TestStack.Seleno.Configuration.Interceptors.SelenoReceivedException : The HTTP request to the remote WebDriver server for URL http://localhost:7055/hub/session/c1e40776-5c00-4e65-8217-3814aafdab7f/element timed out after 60 seconds. ----> OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:7055/hub/session/c1e40776-5c00-4e65-8217-3814aafdab7f/element timed out after 60 seconds.

How can i fix this error?

Thanks.

robdmoore commented 7 years ago

That usually means either:

wijdench commented 7 years ago

Hi,

How can i do when The server is slow? Also i had this issue when i run locally the tests, but they are running correctly in the server.

robdmoore commented 7 years ago

Get a beefier server (or increase the timeout) ;)

If you have this sort of problem locally and your computer isn't slow then it's like the former issue - the browser you are targeting has a mismatch with the version of web driver.

wijdench commented 7 years ago

Thanks robdmoore,

How can i increase the time out in this code public T SubmitApplication<T>() where T : UiComponent, new() { return Navigate.To<T>(By.CssSelector(".login-button > button")); }

I used WaitFor.AjaxCallsToComplete(TimeSpan.FromSeconds(120)); before the click button but it didn't work.

robdmoore commented 7 years ago

It's something you need to specify when creating the web driver object. This link shows examples for how to do that for the Firefox web driver: http://stackoverflow.com/questions/22322596/selenium-error-the-http-request-to-the-remote-webdriver-timed-out-after-60-sec

wijdench commented 7 years ago

how can i specify the firefox time out in seleno host instance Instance.Run("Application", port, configure => { configure.WithRouteConfig(BigBrother.Web.BigBrotherWeb.RouteConfig.RegisterRoutes); configure.UsingLoggerFactory(new ConsoleFactory()); });

robdmoore commented 7 years ago

When you create the Instance you need to specify it then.

e.g. something like:

var timeout = TimeSpan.FromSeconds(120);
Instance.Run("Application", port, c => c
    .WithRouteConfig(BigBrother.Web.BigBrotherWeb.RouteConfig.RegisterRoutes)
    .UsingLoggerFactory(new ConsoleFactory())
    .WithRemoteWebDriver(() => new FirefoxDriver(new FirefoxBinary(), new FirefoxProfile(), timeout)));

Keep in mind this approach allows your tests to take a long time to run so I'd highly recommend you get a faster server if you find you need to do this.

wijdench commented 7 years ago

OK thanks a lot