MattHoneycutt / SpecsFor

SpecsFor is a light-weight Behavior-Driven Development framework that focuses on ease of use for *developers* by minimizing testing friction.
http://specsfor.com
MIT License
196 stars 70 forks source link

Breaking change in Selenium.Support causes WebDriverWait to fail #110

Closed tboby closed 6 years ago

tboby commented 6 years ago

Around version 3.6.0 of Selenium and Selenium.Support WebDriverWait was moved from the Support package to the Selenium package.

This seems to mean you get errors like this when you upgrade Selenium to the latest version and use SpecsFor.Mvc

1.) new MBRRACEWebApp()
2.) Mbrrace.IntegrationTests.MBRRACEWebApp
3.) Instance of Mbrrace.IntegrationTests.MBRRACEWebApp
4.) Container.GetInstance<Mbrrace.IntegrationTests.MBRRACEWebApp>()
 ---> System.TypeLoadException: Could not load type 'OpenQA.Selenium.Support.UI.WebDriverWait' from assembly 'WebDriver.Support, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null'.
   at SpecsFor.Mvc.MvcWebApp.WaitForElementToBeVisible(By selector, Nullable`1 timeout, Boolean throwOnTimeout)
   at SpecsFor.Mvc.MvcWebApp.WaitForElementToBeVisible[TModel,TProp](Expression`1 property, Nullable`1 timeout, Boolean throwOnTimeout)
   at SpecsFor.Mvc.FluentForm`1.WaitForFieldToBeVisible[TProp](Expression`1 property, Nullable`1 timeout, Boolean throwOnTimeout)

If this is what I think it is then this is a really nasty breaking change on a minor version of selenium!

MattHoneycutt commented 6 years ago

Ugh, thanks for reporting this. I'll take a look today.

On Wed, Jan 31, 2018 at 9:44 AM tboby notifications@github.com wrote:

Around version 3.6.0 of Selenium and Selenium.Support WebDriverWait was moved from the Support package to the Selenium package.

This seems to mean you get errors like this when you upgrade Selenium to the latest version and use SpecsFor.Mvc

1.) new MBRRACEWebApp() 2.) Mbrrace.IntegrationTests.MBRRACEWebApp 3.) Instance of Mbrrace.IntegrationTests.MBRRACEWebApp 4.) Container.GetInstance() ---> System.TypeLoadException: Could not load type 'OpenQA.Selenium.Support.UI.WebDriverWait' from assembly 'WebDriver.Support, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null'. at SpecsFor.Mvc.MvcWebApp.WaitForElementToBeVisible(By selector, Nullable1 timeout, Boolean throwOnTimeout) at SpecsFor.Mvc.MvcWebApp.WaitForElementToBeVisible[TModel,TProp](Expression1 property, Nullable1 timeout, Boolean throwOnTimeout) at SpecsFor.Mvc.FluentForm1.WaitForFieldToBeVisible[TProp](Expression1 property, Nullable1 timeout, Boolean throwOnTimeout)```

If this is what I think it is then this is a really nasty breaking change on a minor version of selenium!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/MattHoneycutt/SpecsFor/issues/110, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJkzjS-CQ988So1vltOBXqEUJ4TIWd8ks5tQIpCgaJpZM4R0LgU .

-- Matt Honeycutt Senior Web Application Architect [image: Heroic Applications] http://heroicapplications.com/ pluralsight videos http://pluralsight.com/training/Authors/Details/matt-honeycutt | blog http://trycatchfail.com/ | website http://heroicapplications.com/ | @matthoneycutt http://twitter.com/matthoneycutt

MattHoneycutt commented 6 years ago

Ok, I think I have this fixed. My plan is to do a little more testing to make sure nothing else is broken, then I'll publish a 5.0.0 package this evening.

MattHoneycutt commented 6 years ago

Version 5.0.0 has been pushed to Nuget and should be live shortly. Thanks again for reporting this!