Today I decided to give testing in Meteor another try. I decided to try out xolvio:cucumber and the first test I decided to create simply visited a non-existent page and checked for the “Page not found” text. It worked well so decided to duplicate this test and do basically the same thing for “/login”. The second test is so similar to the first I thought it would would be easy - but a whole 7 hours later I’m still trying to get the test to pass.
Here is a gist of my steps and features.
The problem area is line 30 of the steps:
waitForVisible(’#at-forgotPwd’, 10000)
It times out no matter what I put in the selector. I’ve various types of selectors including xPath and still it times out as if the element never becomes visible.
It might be useful to know that the “/login” route is provided by the “useraccounts:core” package.
I’ve posted this on stack overflow too if you’d rather use it:
The issue you’re having is a webdriver/selenium + reactivity issue and not a cucumber fault directly. These can be frustrating for sure!
A few things to try:
Use waitForExist instead of waitForVisible. The latter expects an element to exist then waits for it to be visible.
Try a delay using this.client.pause(3000). This is just for debugging and will tell if it’s really an issue with waiting
Try taking a screenshot using this.client.capture('name'). This will show you exactly what’s on the screen right before you wait.
Use chrome as phantom can be a little flakey. I’m actually going to make this the default in the next release. You can do: SELENIUM_BROWSER=chrome meteor to use chrome
The tests don’t run at all. Does this use the chrome installed on my system? Because I’m running arch linux chrome is executed with “google-chrome-stable”. I think this might be causing a problem. I’m not really sure.
great! Please post a report to the cucumber github issues with VELOCITY_DEBUG=1 if you want to see why chrome/firefox aren’t working on your system. They can be really useful