Hello,
I''m new to all of this. I have a script that behaves rather
erratically.
I''m getting the following error...
1) Error:
test_capital_by_division(SampleTest):
NoMethodError: undefined method `innerText'' for nil:NilClass
X:/SOM/Admin/Finance/Reporting/Cognos/QA/scripts/DEV/working/CAPTEST.rb:71:i
n `test_capital_by_division''
This refers to the following line in my code:
assert_equal("$977,352" ,
@b.element_by_xpath("//form/table/tbody/tr[3]/td/div/div/table/tbody/tr[2]/td/div/div/div/table/tbody/tr[165]/td[2]/span[1]").innerText
)
The weird thing is that there are other parts in this script where the
very some logic is used and it has no problems. So the results are
entirely inconsistent. My first test case I have set up with 4 very
similar assert_equal''s passes with flying colors.
The script in its entirety is as follows. Do I need to include a require
& include for innerText at the beginning of my script? I''m using
Ruby
1.8.7-p334. Any suggestions?
---------------------------------------------------------------------------
require "rubygems"
require "watir"
require ''watir/testcase''
Watir::Browser.default = ''ie''
class SampleTest < Watir::TestCase
def setup
@b ||= Watir::Browser.new
#STEP 2.01
@b.goto
"http://cognosdev/cognos8/cgi-bin/cognosisapi.dll?b_action=xts.run&m=portal/cc.xts&m_tab=i0D37DF4134554CE997ED0203AACDFF12&m_folder=i0D37DF4134554CE997ED0203AACDFF12&m_folder2=m-i5D0916051581447C9DB14987546469DE"
assert(@b.link(:text, "OHSU Financial Reporting").exist?, "STEP
2.01
FAILED: URL Not Accessible")
#STEP 2.02
assert(@b.link(:text, "OHSU Financial Reporting").exist?, "STEP
2.01
FAILED: URL Not Accessible")
@b.link(:text, "OHSU Financial Reporting").click
assert(@b.link(:text, "Departmental Reports").exist?, "STEP
2.02
FAILED: Unable to locate - Departmental Reports")
@b.link(:text, "Departmental Reports").click
assert(@b.link(:text, "SoM Reports").exist?, "STEP 2.02 FAILED:
Unable
to locate - SoM Reports")
@b.link(:text, "SoM Reports").click
assert(@b.link(:text, "Capital Expenditures & Remaining
Budget").exist?, "STEP 2.02 FAILED: Unable to locate report")
@b.link(:text, "Capital Expenditures & Remaining Budget").click
@b.link(:text, "Capital Expenditures & Remaining Budget").exist?
end
def test_capital_by_department
# set the specific period to filter for
@b.cell(:text => ''Period:'').wait_until_present
@b.select_list(:xpath,
"//input[@name=''p_Period'']/following-sibling::*//select").select_item_in_select_list(:value,
''DEC-09'')
@b.execute_script(''oCV_NS_.promptAction("finish")'')
@startTime = Time.now
# wait until AJAX is complete
@b.cell(:text => ''GRAND TOTAL'').wait_until_present
@endTime = Time.now
@TestRunTime = (@endTime - @startTime).round
puts @TestRunTime
puts "seconds"
assert(@TestRunTime < 30.0, "Report run time took longer than allotted
time")
#check the various revenue numbers for Revenue and Transfers
assert_equal("$977,352" ,
@b.element_by_xpath("//form/table/tbody/tr[3]/td/div/div/table/tbody/tr[2]/td/div/div/div/table/tbody/tr[50]/td[2]/span[1]").innerText
)
assert_equal("$356,233" ,
@b.element_by_xpath("//form/table/tbody/tr[3]/td/div/div/table/tbody/tr[2]/td/div/div/div/table/tbody/tr[50]/td[4]/span[1]").innerText
)
assert_equal("$621,119" ,
@b.element_by_xpath("//form/table/tbody/tr[3]/td/div/div/table/tbody/tr[2]/td/div/div/div/table/tbody/tr[50]/td[6]/span[1]").innerText
)
assert_equal("36.4%" ,
@b.element_by_xpath("//form/table/tbody/tr[3]/td/div/div/table/tbody/tr[2]/td/div/div/div/table/tbody/tr[50]/td[8]/span[1]").innerText
)
puts "All tests passed for Capital by Department"
end
def test_capital_by_division
# set the specific period to filter for
@b.cell(:text => ''Period:'').wait_until_present
@b.select_list(:xpath,
"//input[@name=''p_Period'']/following-sibling::*//select").select_item_in_select_list(:value,
''DEC-09'')
@b.select_list(:xpath, "//input[@name=''p_Report
Type'']/following-sibling::*//select").select_item_in_select_list(:value,
''Division'')
@b.execute_script(''oCV_NS_.promptAction("finish")'')
@startTime = Time.now
# wait until AJAX is complete
@b.cell(:text => ''Period:'').wait_until_present
@endTime = Time.now
@TestRunTime = (@endTime - @startTime).round
puts @TestRunTime
puts "seconds"
assert(@TestRunTime < 60.0, "Report run time took longer than allotted
time")
#check the various revenue numbers for Revenue and Transfers
assert_equal("$977,352" ,
@b.element_by_xpath("//form/table/tbody/tr[3]/td/div/div/table/tbody/tr[2]/td/div/div/div/table/tbody/tr[165]/td[2]/span[1]").innerText
)
puts "All tests passed for Capital by Division"
end
def teardown
@b.close
end
end
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.