Can't get test to pass with xolvio:cucumber


#1

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:


#2

Hey

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:

  1. Use waitForExist instead of waitForVisible. The latter expects an element to exist then waits for it to be visible.

  2. Try a delay using this.client.pause(3000). This is just for debugging and will tell if it’s really an issue with waiting

  3. Try taking a screenshot using this.client.capture('name'). This will show you exactly what’s on the screen right before you wait.

  4. 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

Let me know what happens!


#3

Brilliant! I wasn’t expecting a reply but I’ll try these and report how it goes. Thanks!


#4

When I run with:

SELENIUM_BROWSER=chrome meteor

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.


#5

Neither chrome or firefox work. The tests don’t run and I get “Chimp Server Error”.


#7

In the end I went with this line:

this.client.waitForExist(what).should.become(true).and.notify(callback);

Working very well. Thanks for the help.


#8

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