The registration process was too tedious :(

By looking at you html then indeed, the ul is empty. As long as it's empty
then you can't find the li :) Are you sure that the li should be there?
Maybe it's a timing issue. Try something like this:
# do something to trigger the popup
wait_until {div(:id => "industry").ul.lis.size > 0}

What happens? Can you see that the list is filled and does it still timeout?
Anyway, i suspect it is a timing issue - just find out some nice way to say
to Watir that "wait as long as this condition is met meaning that the list
is loaded properly". As long as the ul is empty and there should be li-s in
there, Watir can't find the li's. Also, remember that Watir does most of the
things a lot faster than you can do manually and having JavaScript in the
game means that there could be some race conditions.

Good luck!

Jarmo

On Mon, Aug 29, 2011 at 7:46 PM, M <[email protected]> wrote:

> I am attaching the page.html.
> I replaced the click_no_wait with click. ie.wait_until {container.present?}
> means that I am waiting for the view of the screenshot to be visible.
> Also if you want to see a real example, you can go to:
> http://qa.jobsync.com/
> and sign up for a new account. During the registration process you'll have
> to go through that page. "Experience section"
>
>
> Thanks for the help
>
>
> On Mon, Aug 29, 2011 at 9:27 AM, Jarmo <[email protected]> wrote:
>
>> I'm not sure that #click_no_wait is needed. Send me the actual html code
>> instead. Do it somehow like this:
>> ie.link(:id, "launchIndustry").click_no_wait # this bottom is to launch
>> the form - attached
>> container = ie.div(:id, "industry")
>> ie.wait_until {container.present?} # does this mean that the view on the
>> screenshot is visible now?
>> File.open("page.html", "w") {|f| f.puts ie.html}
>>
>> Now, send us the "page.html" :)
>>
>> Jarmo
>>
>>
>> On Mon, Aug 29, 2011 at 7:18 PM, M <[email protected]> wrote:
>>
>>> Thanks Jarmo,
>>>
>>> I tried to use your solutions with no luck - i still can't locate the
>>> elements. Here is my code and the HTML code, I also attached a screen shot
>>> of the page so you know the type of pop up that I am dealing with. any help
>>> is appreciated
>>>
>>> ie.link(:id, "launchIndustry").click_no_wait # this bottom is to launch
>>> the form - attached
>>> container = ie.div(:id, "industry")
>>> ie.wait_until {container.present?}
>>> ie.li(:id => "industry_Technology_&_Internet").when_present.click
>>> ie.li(:id => "supersector_Technology_&_Internet").when_present.click
>>> ie.li(:id => "sector_Software_&_Computer_Services").when_present.click
>>> ie.li(:id => "subsector_Computer_&_IT_Services").when_present.click
>>> ie.button(:src, /btn_continueHover.png/).click
>>> puts 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DONE page1
>>> X1XXXXXXXXXXXXXXXXXXXXXXXXXXXX'
>>> ie.li(:id => "busiArea_IT_/_Engineering").when_present.click
>>> ie.li(:id => "funcArea_Information_Technology").when_present.click
>>> ie.li(:id => "specFunction_Software_Engineering").when_present.click
>>> ie.button(:src, /btn_continueHover.png/).click
>>> puts 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DONE page2
>>> X1XXXXXXXXXXXXXXXXXXXXXXXXXXXX'
>>>
>>>
>>> HTML Code: Notice that the UL and IL are empty.
>>>
>>> <div id="overlay" class="hidden">
>>>
>>>
>>>
>>>
>>>
>>>     <div id="industry" class="modal hidden">
>>>
>>>             <form action="#" method="post" class="active" 
>>> id="industryModalForm">
>>>
>>>
>>>
>>>
>>>
>>>                     <div class="page1 clearfix">
>>>                     <h2 style="background: 
>>> url(/static/images/blue_gradient.png) repeat-x;font-size: 
>>> 1.5em;margin-bottom: 0;padding-top: 9px;padding-bottom: 0px;"><a href="#" 
>>> class="industryModalClose" style="float: right;padding-right: 10px;"><a 
>>> href="#" class="industryModalClose" style="float: right;padding-right: 
>>> 10px;"><img src="/static/images/icon_modal_close.png" 
>>> alt="close"/></a>Select Industry<span>Page 1 of 2</span></h2>
>>>
>>>
>>>
>>>
>>>
>>>                             <p class="heading">Please specify the industry 
>>> and sector for <strong class="company"></strong> by making a selection in 
>>> <em>all four boxes</em>. A company's sector is determined by its source of 
>>> revenue or where it generates most of its revenue.</p>
>>>
>>>
>>>
>>>
>>>                             <dl class="first" id="primary_list" 
>>> style="padding-left: 15px;">
>>>
>>>                                     <dt>Primary Industry</dt>
>>>                                     <dd>
>>>                                             <ul>
>>>                                             </ul>
>>>
>>>                                     </dd>
>>>                             </dl>
>>>                             <dl id="supersector_list">
>>>
>>>                                     <dt>Supersector</dt>
>>>                                     <dd>
>>>                                             <ul>
>>>
>>>                                             </ul>
>>>                                     </dd>
>>>                             </dl>
>>>                             <dl id="sector_list">
>>>
>>>                                     <dt>Sector</dt>
>>>
>>>                                     <dd>
>>>                                             <ul>
>>>
>>>                                             </ul>
>>>                                     </dd>
>>>                             </dl>
>>>                             <dl id="subsector_list">
>>>
>>>                                     <dt>Subsector</dt>
>>>                                     <dd>
>>>
>>>                                             <ul>
>>>
>>>                                             </ul>
>>>                                     </dd>
>>>                             </dl>
>>>                             <div class="buttons" style="margin: 0px 0px 
>>> 10px;padding-left: 20px;width: 100%;">
>>>
>>>
>>>
>>>
>>>
>>>                                     <input type="image" 
>>> src="/static/images/btn_continueDisabled.png" alt="Continue" height="39" 
>>> width="113" disabled>
>>>
>>>
>>>
>>>
>>>
>>>                                     <a href="#" class="goback" style="left: 
>>> 170px;top: -8px;">Cancel</a>
>>>
>>>
>>>
>>>
>>>
>>>                             </div>
>>>
>>>                     </div>
>>>                     <div class="page2 hidden clearfix">
>>>
>>>                     <h2 style="background: 
>>> url(/static/images/blue_gradient.png) repeat-x;font-size: 
>>> 1.5em;margin-bottom: 0;padding-top: 9px;padding-bottom: 0px;"><a href="#" 
>>> class="industryModalClose" style="float: right;padding-right: 10px;"><img 
>>> src="/static/images/icon_modal_close.png" alt="close"/></a>Select 
>>> Function<span>Page 2 of 2</span></h2>
>>>
>>>
>>>
>>>
>>>
>>>                             <p class="heading">Please specify the function 
>>> of the <strong class="title"></strong> position by making a selection in 
>>> <em>all three boxes</em>.</p>
>>>
>>>
>>>
>>>
>>>
>>>                             <dl class="first" id="busiArea_list" 
>>> style="padding-left: 20px;">
>>>
>>>                                     <dt>Broad Area</dt>
>>>                                     <dd>
>>>                                             <ul>
>>>
>>>                                             </ul>
>>>                                     </dd>
>>>                             </dl>
>>>                             <dl id="funcArea_list">
>>>
>>>                                     <dt>Specific Area</dt>
>>>
>>>                                     <dd>
>>>                                             <ul>
>>>
>>>                                             </ul>
>>>                                     </dd>
>>>                             </dl>
>>>                             <dl id="specFunction_list">
>>>
>>>                                     <dt>Specific Function</dt>
>>>                                     <dd>
>>>
>>>                                             <ul>
>>>
>>>                                             </ul>
>>>                                     </dd>
>>>                             </dl>
>>>                             <div class="buttons" style="margin: 0px 0px 
>>> 10px;padding-left: 20px;width: 100%;">
>>>
>>>
>>>
>>>
>>>
>>>                                     <input type="image" 
>>> src="/static/images/btn_continueDisabled.png" alt="Save" height="39" 
>>> width="183" disabled id="finishModal">
>>>
>>>
>>>
>>>
>>>
>>>                                     <a href="#" class="goback" style="left: 
>>> 170px;top: -8px;">Cancel</a>
>>>
>>>
>>>
>>>
>>>
>>>                             </div>
>>>
>>>                     </div>
>>>                     <input type="hidden" name="key" 
>>> value="4e57f6bb8264ee1de0000000">
>>>
>>>
>>>
>>>
>>>
>>>             </form>
>>>     </div>
>>> </div>
>>>
>>>
>>>
>>>
>>> Thanks
>>>
>>>
>>>
>>> On Sun, Aug 28, 2011 at 1:39 AM, Jarmo <[email protected]> wrote:
>>>
>>>> It seems to me that you're trying to locate "li" inside wrong container.
>>>> Of course i can't see the whole html code, but at first you're checking 
>>>> that
>>>> the container exists like this:
>>>> ie.div.dl(:id, "container_dl").exists?
>>>>
>>>> And then you're doing like this:
>>>> ie.div.li(:id, "firstLink").exists?
>>>>
>>>> I'm not sure that the problem is in this line, but what if you'd try to
>>>> do something like this instead:
>>>> container = ie.div.dl(:id, "container_dl")
>>>> ie.wait_until {container.exists?} # or maybe use #present? instead of
>>>> #exists? to make sure that the container is also visible if it should be...
>>>>
>>>> container.li(:id, "firstLink").when_present.click
>>>>
>>>> If that line fails then try to access that li directly, since "id"
>>>> attribute *should* be unique within the page anyway:
>>>> ie.li(:id, "firstLink").when_present.click
>>>>
>>>> If that fails too then you have frames on the page or the li doesn't
>>>> have that id... use something like this for debugging:
>>>> puts ie.div(id, "industry").ul.html
>>>>
>>>> Sorry, can't help any more if you don't provide the whole html code and
>>>> your Watir code too.
>>>>
>>>> Jarmo
>>>>
>>>>
>>>> On Sat, Aug 27, 2011 at 6:10 PM, M <[email protected]> wrote:
>>>>
>>>>> Sorry to email you about this issue, I asked the question in Watir
>>>>> discussion group but with no help or replies at all.
>>>>>
>>>>> how do I select li link with id from a jquery dynamic list. Can this
>>>>> be done in watir??
>>>>> Using Watir 2.0, Ruby 1.8.7:
>>>>>
>>>>> require "rubygems"
>>>>> require "watir"
>>>>> require "firewatir"
>>>>> ie=Watir::IE.new
>>>>>
>>>>> I have a dynamic Div that contains
>>>>> <div id="industry" class="modal">
>>>>> <dl id="SomeID" class="first">
>>>>> <dt>someText</dt>
>>>>> <dd>
>>>>> <ul>
>>>>> <li id="someID1">
>>>>> <a href="#" class="selected">someText</a>
>>>>> <li id="someID2">
>>>>> <a href="#">SomeText</a>
>>>>>
>>>>> This list is in a modal "jquery pop up form". So I want to click on
>>>>> any <li>. and after I click on the link, another set of <li>'s will
>>>>> appear, that I need to select from as well. So my problem is how to
>>>>> select the li even though they are not in the page, because they are
>>>>> dynamically generated by the server based on the user click. Also do I
>>>>> need to wait for it to load. I am a Watir newbie so please the more
>>>>> detail the better.
>>>>>
>>>>> Here is my current code:
>>>>>
>>>>> #this will launch the jquery form successfully
>>>>> ie.link(:id, "launchIndustry").click_no_wait
>>>>>
>>>>> #this is the <dl> that contain all the <li>'s
>>>>> ie.wait_until {ie.div.dl(:id, "container_dl").exists? }
>>>>> puts ie.div.dl(:id, 'container_dl').exists? # good up to here
>>>>>
>>>>> ie.wait_until {ie.div.li(:id, "firstLink").exists? }
>>>>> ie.div(:id => "industry").li(:id => "firstLink").click
>>>>>
>>>>> The error that I get is:
>>>>>
>>>>> timed out after 60 seconds, which means that the script can't the
>>>>> first li element. Please help, because I have to select these options
>>>>> before I can move forward as it's a required field.
>>>>>
>>>>> Any help is appreciated.
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>
>>>
>>
>

-- 
Before posting, please read http://watir.com/support. In short: search before 
you ask, be nice.

[email protected]
http://groups.google.com/group/watir-general
[email protected]

Reply via email to