I noticed that Codeception doesn't work very good with AngularJS. I'm constantly getting "Element not visible exception" or "Other element received a click".Is possible to use Codeception with AngularJS application at all?

How to click on the button with the following code:

And the other part of the problem is that this button is located inside couple of views.

I like Codeception a lot and I'd be more than happy to continue to use it with AngularJS applications.Thank you in advance for any help!

@davert@natemow That's some ridiculous advice. You're comparing integration testing with unit testing. As a PHP developer, unit tests in JS land is a pain - you have to mock everything. That takes a lot longer than integration / acceptance testing.

The issues lie with how ng-repeat and click events are parsed. The closest way I've been able to test clicking non-links and non-button elements are to use executeJS('$(".myElement span")') but even that is a bit shaky with Angular JS.

Honestly i'm just surprised that the click method in Codeception only handles links and buttons.

For AngularJS the best solution is Protractor that is the framework for AngularJS testing.

However it is possible to test AngularJS application with Codeception (I've done a couple of demo on this), but that requires a good understanding on how AngularJS load a page.For people who'd like to use Codeception, I'd recommend to check that all AJAX call have been performed before considering the page loaded, and the same for any waitFor actions.That's a small trick (sorry I don't have the code anymore), but it works in most of the cases, there's still some edge cases depending on how AngularJS has been implemented where a good old ugly and dirty pause is required.