Skip to content

Instantly share code, notes, and snippets.

@mark-dce
Created August 21, 2018 15:22
Show Gist options
  • Save mark-dce/f378fc0b926f7e415a7b70078c4da3a2 to your computer and use it in GitHub Desktop.
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
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