Created
August 21, 2018 15:22
-
-
Save mark-dce/f378fc0b926f7e415a7b70078c4da3a2 to your computer and use it in GitHub Desktop.
Katalon recording to test that partnering agency is listed on the Submit tab
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "json" | |
require "selenium-webdriver" | |
require "rspec" | |
include RSpec::Expectations | |
describe "PartneringAgencyDisplaysOnSubmitTab" do | |
before(:each) do | |
@driver = Selenium::WebDriver.for :firefox | |
@base_url = "https://www.katalon.com/" | |
@accept_next_alert = true | |
@driver.manage.timeouts.implicit_wait = 30 | |
@verification_errors = [] | |
end | |
after(:each) do | |
@driver.quit | |
@verification_errors.should == [] | |
end | |
it "test_partnering_agency_displays_on_submit_tab" do | |
@driver.get "https://qa-upgrade-etd.emory.edu/" | |
@driver.find_element(:css, "#logo > #logo").click | |
@driver.find_element(:link, "Submit My ETD").click | |
@driver.find_element(:id, "Student Name").click | |
@driver.find_element(:id, "Student Name").clear | |
@driver.find_element(:id, "Student Name").send_keys "Bussey, Mark H." | |
@driver.find_element(:id, "school").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, "school")).select_by(:text, "Rollins School of Public Health") | |
@driver.find_element(:id, "graduation-date").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, "graduation-date")).select_by(:text, "Fall 2017") | |
@driver.find_element(:id, "Post-Graduation Email").click | |
@driver.find_element(:id, "Post-Graduation Email").clear | |
@driver.find_element(:id, "Post-Graduation Email").send_keys "mark@curationexperts.com" | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Post-Graduation Email'])[1]/following::button[1]").click | |
@driver.find_element(:id, "department").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, "department")).select_by(:text, "Executive Masters of Public Health - MPH") | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Partnering Agency'])[1]/following::button[1]").click | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Department'])[1]/following::select[2]").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Department'])[1]/following::select[2]")).select_by(:text, "State or local governmental agency (not a health department and not in Georgia)") | |
@driver.find_element(:id, "subfield").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, "subfield")).select_by(:text, "Applied Epidemiology") | |
@driver.find_element(:id, "degree").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, "degree")).select_by(:text, "Th.D.") | |
@driver.find_element(:id, "submitting-type").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, "submitting-type")).select_by(:text, "Honors Thesis") | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Submission Type'])[1]/following::button[1]").click | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Chair and Commitee Members'])[1]/following::button[1]").click | |
@driver.find_element(:name, "etd[committee_chair_attributes][0][name][]").click | |
@driver.find_element(:name, "etd[committee_chair_attributes][0][name][]").clear | |
@driver.find_element(:name, "etd[committee_chair_attributes][0][name][]").send_keys "Lynn, Rachel" | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Add a Committee Member'])[1]/following::button[1]").click | |
@driver.find_element(:id, "Title").click | |
@driver.find_element(:id, "Title").clear | |
@driver.find_element(:id, "Title").send_keys "Testing Partnering Agency display on Review Screen" | |
@driver.find_element(:id, "language").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:id, "language")).select_by(:text, "English") | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Abstract'])[1]/following::p[1]").click | |
# ERROR: Caught exception [unknown command [editContent]] | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Table of Contents'])[1]/following::div[6]").click | |
# ERROR: Caught exception [unknown command [editContent]] | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Table of Contents'])[1]/following::button[4]").click | |
@driver.find_element(:name, "etd[research_field][]").click | |
Selenium::WebDriver::Support::Select.new(@driver.find_element(:name, "etd[research_field][]")).select_by(:text, "Aeronomy") | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Keywords'])[3]/following::button[1]").click | |
@driver.find_element(:name, "etd[keyword][]").click | |
@driver.find_element(:name, "etd[keyword][]").clear | |
@driver.find_element(:name, "etd[keyword][]").send_keys "cerulean" | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Patents'])[1]/following::button[1]").click | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Please add files larger than 100MB with Box.'])[1]/following::label[1]").click | |
@driver.find_element(:id, "add-file").clear | |
@driver.find_element(:id, "add-file").send_keys "/Users/mark/Desktop/sample-assets/AK-Page-4.pdf" | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Add a supplemental file from Box'])[1]/following::button[1]").click | |
@driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='Requested Embargo Length'])[1]/following::button[1]").click | |
verify { @driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='mark@curationexperts.com'])[1]/following::section[1]").text.should =~ /^[\s\S]*State or local governmental agency[\s\S]*$/ } | |
verify { @driver.find_element(:xpath, "(.//*[normalize-space(text()) and normalize-space(.)='mark@curationexperts.com'])[1]/following::section[1]").text.should_not =~ /^[\s\S]*No partnering agency[\s\S]*$/ } | |
end | |
def element_present?(how, what) | |
${receiver}.find_element(how, what) | |
true | |
rescue Selenium::WebDriver::Error::NoSuchElementError | |
false | |
end | |
def alert_present?() | |
${receiver}.switch_to.alert | |
true | |
rescue Selenium::WebDriver::Error::NoAlertPresentError | |
false | |
end | |
def verify(&blk) | |
yield | |
rescue ExpectationNotMetError => ex | |
@verification_errors << ex | |
end | |
def close_alert_and_get_its_text(how, what) | |
alert = ${receiver}.switch_to().alert() | |
alert_text = alert.text | |
if (@accept_next_alert) then | |
alert.accept() | |
else | |
alert.dismiss() | |
end | |
alert_text | |
ensure | |
@accept_next_alert = true | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment