Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

c is undefined Johnson Error clicking a Jquery Tab #27

Open
DaveSanders opened this issue Aug 4, 2010 · 2 comments
Open

c is undefined Johnson Error clicking a Jquery Tab #27

DaveSanders opened this issue Aug 4, 2010 · 2 comments

Comments

@DaveSanders
Copy link

I'm getting this error:

When I click the "Users" tab            # features/step_definitions/users/User_Access_steps.rb:64
  c is undefined (Johnson::Error)
  inline:690 [JavaScript]
  inline:699 [JavaScript]
  inline:55 [JavaScript]
  inline:49 [JavaScript]
  ./features/step_definitions/users/User_Access_steps.rb:65:in `/^I click the "([^"]*)" tab$/'
  features/users/Permissions.feature:75:in `When I click the "Users" tab'

With a custom step that I defined:

When /^I click the "([^"]*)" tab$/ do |arg1|
page.locate(:css, ".tabs > ul > li > a:contains('" + arg1 + "')").click();
end

However, this also fails if I use the usual click_link on the link. The link is generated as part of Jquery UI's tabs code, but the html for the link is simply:
Users

I'd be happy to give any more information needed... I am just getting up to speed on the framework and am not sure what's relevant.

@DaveSanders
Copy link
Author

I've found some more info.

The error boils down to something going on deep in the Jquery UI code. If I run the un minified version of the JQuery UI Tabs code, then I get slightly better information:

WARNIING: [Wed Aug 04 2010 12:00:18 GMT-0400 (EST)] {ENVJS} Exception while dispatching events: TypeError: hash is undefined
When I click the "Users" tab # features/step_definitions/users/User_Access_steps.rb:64
hash is undefined (Johnson::Error)
inline:71 [JavaScript]
inline:330 [JavaScript]
inline:55 [JavaScript]
inline:49 [JavaScript]
./features/step_definitions/users/User_Access_steps.rb:65:in /^I click the "([^"]*)" tab$/' features/users/Permissions.feature:74:inWhen I click the "Users" tab'

That line that is blowing up refers to the tab's hash in jquery.

_sanitizeSelector: function(hash) {
    return hash.replace(/:/g, '\\:'); // we need this because an id may contain a ":"
},

Which is called from the onclick handler for the tab. Doing some searching around in the code for how they use the term "hash" it looks like they've had to allow for some browser specific functionality, so there is probably a collision between technologies going on.

Probably can't do anything about it. But it's out there as one thing that envjs stutters on that selenium and non-headless seems to catch. For now I'll just use selenium for this scenario, but if anyone wants to try to debug and tackle this and wants more info, let me know.

@smparkes
Copy link
Owner

If you have some way I can simply recreate this, I can at least triage it, to see if it's an easy fix ... or a hard one.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants