So, I won't be able to retrieve those headers because the first one has a
<p> in it.

Why is it when I try to get the li class name it returns?

ree-1.8.7-2010.02 :041 > section_headers.each do|sec_hdr|
ree-1.8.7-2010.02 :042 >     puts hdr = sec_hdr.class
ree-1.8.7-2010.02 :043?>   end
Watir::LI
Watir::LI
Watir::LI
Watir::LI

On Mon, Nov 7, 2011 at 8:40 AM, Michael <[email protected]> wrote:

> That appears to be because your first LI doesn't have a H2 inside of it.
> When you put one LI after another, the browser will automatically close the
> first before the second opens.
>
> <ul class="items">
> <li class="item subscriptions-description">
> <li class="item digest-options">
> <h2>Digest Options</h2>
>
>
> Fix your HTML syntax and you should be good to go.
>
> Michael
>
> On 2011-Nov-07, at 6:08 AM, Joe Fleck wrote:
>
> No worries,
>
> here is what I got when I ran the code:
>
> ree-1.8.7-2010.02 :024 > section_headers = $browser.div(:class,"mod simple
> your-subscriptions").div(:class,"bd").ul(:class,"items").lis
>  => #<Watir::LICollection:0x1044bf000 @parent=#<Watir::UList:0x1044bf0f0
> located=false selector={:class=>"items", :tag_name=>"ul"}>,
> @selector={:tag_name=>"li"}>
> ree-1.8.7-2010.02 :025 > section_headers.each do|sec_hdr|
> ree-1.8.7-2010.02 :026 >     puts hdr = sec_hdr.h2.text
> ree-1.8.7-2010.02 :027?>   end
> Watir::Exception::UnknownObjectException: unable to locate element, using
> {:tag_name=>"h2"}
>  from
> /Users/josephfleck/.rvm/gems/ree-1.8.7-2010.02/gems/watir-webdriver-0.3.4/lib/watir-webdriver/elements/element.rb:248:in
> `assert_exists'
>  from
> /Users/josephfleck/.rvm/gems/ree-1.8.7-2010.02/gems/watir-webdriver-0.3.4/lib/watir-webdriver/elements/element.rb:55:in
> `text'
> from (irb):26
>  from
> /Users/josephfleck/.rvm/gems/ree-1.8.7-2010.02/gems/watir-webdriver-0.3.4/lib/watir-webdriver/element_collection.rb:21:in
> `each'
> from
> /Users/josephfleck/.rvm/gems/ree-1.8.7-2010.02/gems/watir-webdriver-0.3.4/lib/watir-webdriver/element_collection.rb:21:in
> `each'
>  from (irb):25
> from
> /Users/josephfleck/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems.rb:406
>
> If I do it this way:
>
> ree-1.8.7-2010.02 :034 > section_headers.each do|sec_hdr|
> ree-1.8.7-2010.02 :035 >     puts hdr = sec_hdr.text
> ree-1.8.7-2010.02 :036?>   end
>
> I get this output which at a level to high
>
> Association CDK Sandbox provides you with all updates from the community
> that you subscribe to in a single email, delivered weekly or daily. You can
> customize the content of your digest and how often you want to receive it.
> To stop receiving the digest, just set the frequency of updates to never.
> * Digest Options
> Frequency of digest:
> Weekly
> Daily
> Never
> Format of digest:
> HTML Format (images)
> Text Only
> * Community Features
> Guided Discussions
> * Member Discussion Topics
> Select the topics you're interested in to receive activity updates in
> those areas.
> Engineering
> UX
> QA
>
> I have starred those headers I need.
>
>
>
> On Sun, Nov 6, 2011 at 9:45 PM, Michael <[email protected]> wrote:
>
>> A second looks at your code made me think you should be using ul
>> (singular because you only have one), and append lis on the end to get all
>> the li's contained within the ul.
>>
>> My Code:section_headers = $browser.div(:class,"bd").ul(:class,"items").lis
>>
>>
>> Sorry about the first response, please disregard it.
>>
>> Michael
>>
>> On 2011-Nov-06, at 7:40 PM, Michael wrote:
>>
>> You probably intended to use uls which will return a list of ul's instead
>> of ul which only returns the first matching ul.
>>
>> Try:
>>
>> My Code:section_headers = $browser.div(:class,"bd").uls(:class,"items")
>>
>>
>> Michael
>>
>> On 2011-Nov-06, at 7:09 PM, Joe Fleck wrote:
>>
>> Hi Chuck,
>>
>> I am still having a bit of trouble with getting a group of h2 from a page.
>>
>> My Code:section_headers = $browser.div(:class,"bd").ul(:class,"items")
>> section_headers.each do|sec_hdr|
>> puts hdr = sec_hdr.h2.text
>> end
>>
>> I get the following error message.
>> NoMethodError: undefined method `each' for #<Watir::UList:0x10aa117f0>
>>  from
>> /Users/josephfleck/.rvm/gems/ree-1.8.7-2010.02/gems/watir-webdriver-0.3.4/lib/watir-webdriver/elements/element.rb:295:in
>> `method_missing'
>>  from (irb):10
>> from
>> /Users/josephfleck/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/deprecate.rb:58
>>
>>
>> The HTML Code:
>> <div class="mod simple your-subscriptions">
>> <div class="inner">
>> <div class="hd">
>> <div class="bd">
>> <ul class="items">
>> <li class="item subscriptions-description">
>> <li class="item digest-options">
>> <h2>Digest Options</h2>
>> <div class="line form">
>> <div class="unit size2of5">
>> <div class="line lastUnit size3of5">
>> <label class="wide-label" for="digest_setting_email_format">Format of
>> digest:</label>
>> <select id="digest_setting_email_format" name="
>> digest_setting[email_format]" data-method="put" data-href="
>> /digest_settings/488" data-command="change">
>> </div>
>> </div>
>> </li>
>> <li class="item community-features">
>> <h2>Community Features</h2>
>> <div class="line form">
>> <input id="109" class="unit content-feed-subscribe checkbox mrm" type="
>> checkbox" value="content-feed-109" name="content_feed_Guided Discussions"
>>  data-subscription-url="/content_feeds/109/subscribe?channel_id=57"
>> data-content-feed-id="109">
>> <label class="unit label-for-checkbox" for="109">Guided Discussions</
>> label>
>> </div>
>> </li>
>> <li class="item member-discussions">
>> <h2>Member Discussion Topics</h2>
>> <p>Select the topics you're interested in to receive activity updates in
>> those areas.</p>
>> <div class="line form">
>> <div class="unit size1of2">
>> <div class="line checkbox-row">
>> <input id="107" class="unit content-feed-subscribe checkbox mrm" type="
>> checkbox" value="content-feed-" name="content_feed_Engineering"
>> data-subscription-url="/content_feeds/107/subscribe?channel_id=57"
>> data-content-feed-id="107">
>> <label class="unit label-for-checkbox" for="107">Engineering</label>
>> </div>
>> <div class="line checkbox-row">
>> <input id="108" class="unit content-feed-subscribe checkbox mrm" type="
>> checkbox" value="content-feed-" name="content_feed_UX"
>> data-subscription-url="/content_feeds/108/subscribe?channel_id=57"
>> data-content-feed-id="108">
>> <label class="unit label-for-checkbox" for="108">UX</label>
>> </div>
>> </div>
>> <div class="unit size1of2 lastUnit">
>> <div class="line checkbox-row">
>> <input id="110" class="unit content-feed-subscribe checkbox mrm" type="
>> checkbox" value="content-feed-" name="content_feed_QA"
>> data-subscription-url="/content_feeds/110/subscribe?channel_id=57"
>> data-content-feed-id="110">
>> <label class="unit label-for-checkbox" for="110">QA</label>
>> </div>
>> </div>
>> </div>
>> </li>
>> </ul>
>>
>> I just want the h2 header.
>>
>> On Fri, Oct 21, 2011 at 5:07 PM, Chuck van der Linden 
>> <[email protected]>wrote:
>>
>>>
>>>
>>> On Oct 21, 10:41 am, Joe Fl <[email protected]> wrote:
>>> > Hi,
>>> >
>>> > I need to retrieve multiple discusion titles from a page. I just want
>>> > the titles only and there can be 5 to 13 on a page with other links
>>> > listed under them.  I have tried the following and it will only return
>>> > the first discussion title or all links:
>>> >
>>> > subject_lines =
>>> >
>>> $browser.div(:class,'one_col_select').div(:id,'naph').div(:id,'discussion-
>>> > board').span(:class,'discussion-title').links
>>> >
>>> > subject_lines.each do|link|
>>> >     puts title_name = link.text
>>> > end
>>> >
>>>
>>> Your problem is that you are telling it to get all the links from
>>> within a single span.  I think what you need to do is get all the
>>> spans which contain those links, and then pull the link text, OR if
>>> the only links on the page are those of the class theme are the ones
>>> you want, then just go for the links directly
>>>
>>> If you can go after the links, then
>>>
>>>  subject_links = $browser.links(:class, 'theme')
>>>
>>>  subject_links.each do|link|
>>>    puts  link.text
>>>  end
>>>
>>> If the links are not unique enough on their own, then unless there are
>>> other spans on the page with the discussion_title class that you don't
>>> want, you need to do something more along these lines
>>>
>>>  subjects = $browser.spans(:class,'discussion-title')
>>>
>>>  subjects.each do|subject|
>>>    puts subject.link.text    #presumes we want first link inside the
>>> span
>>>  end
>>>
>>> --
>>> 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]<http://groups.google.com/group/[email protected]>
>>>
>>
>>
>> --
>> 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]
>>
>>
>>
>> --
>> 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]
>>
>>
>>
>> --
>> 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]
>>
>
>
> --
> 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]
>
>
>  --
> 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]
>

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