Many times we face a situation where we have to assert the content of two tables in a web-page. The best solution of this problem is that we first put the content of both the tables in an array and then compare the content of these two arrays.
 
Suppose we have a web-page

 
Here we have to assert the employee names present in the left navigation with the employee names present in the middle section of the page in the form of table.
 
We have taken two arrays ie array1(for left navigation) and array2(for middle section), then pushed elements in array one by one. Once all the elements were pushed then we will compare both the arrays
 
  def assert_project_members
    @session.within_frame 'mainiframe' do
      @array1 = Array.new
      @array2 = Array.new
      sleep 1
      c = "input[@type='checkbox'][@checked='checked'][not(contains(@name, 'allUsers'))]"
      @session.all(:xpath, "//*[@id='projUserListing']//#{c}/following-sibling::span").each do |a|
        @array1.push a.text
      end
      sleep 3
      @session.all(:xpath, ".//*[@id='tabCalendar']//ul[@class='tabReportUl']/li[@class='empName']").each do |b|
        @array2.push b.text
      end
    end
    expect(@array1).to match_array(@array2)
    self
  end
 
expect(@array1).to match_array(@array2)
 
This will compare the elements array1 with the elements of array2 and if both the array contains the same elements then it will return true otherwise it will return false.
                       
                    
0 Comment(s)