• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Locating components with Jemmy...

 
Eric Nielsen
Ranch Hand
Posts: 194
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm returning to Java after many years away; I'm generally a web application programmer in various scripting languages, so returning to stand-alone GUI apps in Java is slow going. I try to follow TDD in whatever language I'm working in.

I'm having trouble locating components with Jemmy. Their on-line API documention appears to no longer be linked for netbeans site, nor are the classes listed in the master list. However some google search's turned up some possibly orphaned pages. The book I've been working from references a "NameBasedChooser" for locating components when you have multiple similar type compoents (such as 3 JLists). However, there doesn't seem to be any "NameBasedChooser" class in the Jemmy package at this time. I found a NameComponentChooser but it doesn't seem to work.

The text based chooser fails because the first JList tends to contain superstrings of all the possible search terms in the later JLists.

Can anyone offer advice? or links to more complete Jemmy tutorials than at the jemmy.netbeans.org site? Thank you.

Eric
 
Lasse Koskela
author
Sheriff
Posts: 11962
5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Could you explain more about why the NameComponentChooser doesn't work for you?

If I remember correctly, it's doing something like the following:
 
Eric Nielsen
Ranch Hand
Posts: 194
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Looks like it was just an oversight on my part -- the first JList that Jemmy kept claiming for any of the latter ones was wrapped in a JScrollPane. I had named the JScrollPane not the wrapped JList, so of course the NameComponentChooser argument on the JListOperator wasn't finding anything.
 
Daniel Hinton
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm having a similar problem (I believe).

I have a button labeled "Continue" but there is text above it that instructs a user to click "Continue" I feel like my clickContinue() is clicking on the text instead of the button:

public SomeArbitraryPage clickContinue() {
JLabelOperator alternateContinueButton = new JLabelOperator(appFrame, "Continue");
alternateContinueButton.waitComponentShowing(true);
alternateContinueButton.clickMouse();
return new SomeArbitraryPage(sessionObject);
}

The unit tests where I lead up to clicking this, as well as the actual clicking test pass. How would one make it so that I either loop through and click both... or just click the second one it finds?

Thanks!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic