Hi Everyone,

I am putting a test together to confirm the correct data is displaying 
within a UI table.  I found here that someone suggested using Nokogiri with 
watir webdriver and tried it out but i do not really understand what it is 
doing.

Related Article: 
 
https://groups.google.com/forum/#!searchin/watir-general/table/watir-general/jk58Xf0DomE/Vdwwz2pYndQJ

First I get data through a URI search from elastic search using rest-client.

data_to_validate = get_grid_data(request_caller_state('ID'))
=> {"Call Date"=>"2014-05-21 12:33:07",
 "Call Campaign"=>"pizza 1:1",
 "Transcription"=>"Processed",
 "Incoming #"=>"4442416734",
 "Tracking #"=>"4444731333",
 "Destination #"=>"4449206417",
 "Rings"=>5,
 "Duration"=>"184",
 "Call Disposition"=>"ANSWER",
 "Keywords"=>"",
 "Keyword Type"=>"",
 "Recording"=>
  
"http://recordings.mongoosemetrics.com/unprocessed/e3fc47393f90720fc0fb6573fff5a541.wav";,
 "State"=>"ID",
 "City"=>"POCATE",
 "Zip"=>"11122"}

*UI Table*
table_obj = @browser.table(:class=>'table table-striped table-bordered 
table-hover table-condensed table-checkable datatable').tbody
myArray = data_to_validate.values
check_table_vs_elastic_data(table_obj,myArray)

       def check_table_vs_elastic_data(table_obj,myArray)
nokogiri = Nokogiri::HTML.parse(table_obj.html)
nokogiri.css('tr').each_with_index do |tr, i|
    if tr.css('td').collect(&:text) == myArray  *<== This the part I do not 
really understand.  I understand the .collect(&:text) get all of the rows 
data.  (I think)*
        puts "Row to click: #{i}"
    end
end
end


When I run it I get all of this Nokogiri output and nothing that tells me 
it worked successfully.

Part of the output:
[#<Nokogiri::XML::Element:0x3ff2ab136f68 name="tr" 
children=[#<Nokogiri::XML::Text:0x3ff2ab139e70 "\n                         
                               ">, #<Nokogiri::XML::Element:0x3ff2ab136b44 
name="td" attributes=[#<Nokogiri::XML::Attr:0x3ff2ab139cf4 name="class" 
value="column-cdr_entry_date">, #<Nokogiri::XML::Attr:0x3ff2ab139ce0 
name="style" value="white-space: nowrap; display: table-cell;">] 
children=[#<Nokogiri::XML::Text:0x3ff2ab13940c "\n                         
                           2014-05-21 12:33:07                             
               ">]>, #<Nokogiri::XML::Text:0x3ff2ab1391dc "\n               
                                         ">, 
#<Nokogiri::XML::Element:0x3ff2ab136b1c name="td" 
attributes=[#<Nokogiri::XML::Attr:0x3ff2ab139038 name="class" 
value="column-cdr_rated_code">, #<Nokogiri::XML::Attr:0x3ff2ab139024 
name="style" value="white-space: nowrap; display: none;">] 
children=[#<Nokogiri::XML::Text:0x3ff2ab138750 "\n                         
                           e3fc47393f90720fc0fb6573fff5a541                 
                           ">]>, #<Nokogiri::XML::Text:0x3ff2ab1384d0 "\n   
                                                     ">, #<Nokogiri:


table html

<table class="table table-striped table-bordered table-hover 
table-condensed table-checkable datatable">
    <thead></thead>
    <tbody>
        <tr>
            <td class="column-cdr_entry_date" style="white-space: nowrap; 
display: table-cell;">
                        TEXT
            </td>
            <td class="column-cdr_rated_code" style="white-space: nowrap; 
display: none;">
                        TEXT
            </td>
            <td class="column-campaign_name" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-campaign_code" style="white-space: nowrap; 
display: none;"></td>
            <td class="column-campaign_billing_type" style="white-space: 
nowrap; display: none;"></td>
            <td class="column-mixed" style="white-space: nowrap; display: 
table-cell;"></td>
            <td class="column-account_code" style="white-space: nowrap; 
display: none;"></td>
            <td class="column-incoming_number" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-did_number" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-destination_number" style="white-space: 
nowrap; display: table-cell;"></td>
            <td class="column-rings_count" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-call_duration" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-duration_in_mins" style="white-space: nowrap; 
display: none;"></td>
            <td class="column-message" style="white-space: nowrap; display: 
table-cell;"></td>
            <td class="column-promocode" style="white-space: nowrap; 
display: none;"></td>
            <td class="column-keywords" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-keyword_type" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-recording" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-incoming_caller_name" style="white-space: 
nowrap; display: none;"></td>
            <td class="column-caller_state" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-caller_city" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-caller_areacode" style="white-space: nowrap; 
display: none;"></td>
            <td class="column-caller_zip" style="white-space: nowrap; 
display: table-cell;"></td>
            <td class="column-caller_timezone" style="white-space: nowrap; 
display: none;"></td>
            <td class="column-route_type" style="white-space: nowrap; 
display: none;"></td>
            <td class="column-email" style="white-space: nowrap; display: 
none;"></td>
            <td class="column-custom1" style="white-space: nowrap; display: 
none;"></td>
            <td class="column-custom2" style="white-space: nowrap; display: 
none;"></td>
            <td class="column-custom3" style="white-space: nowrap; display: 
none;"></td>
        </tr>
    </tbody>
</table>


Any help would be appreciated.  If someone else has another suggestion that 
would be great too.
I could multiple rows to validate.

Thank you,
Joe


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

--- 
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to