나는이 스크립트를 몇 달 전에 작성했으며 잘 작동했습니다. 그러나 어젯밤에 페이지가로드되지 않고 영원히 계속 돌아가는 문제가있었습니다. 내 스크립트는 단지 시간 초과되었습니다. 페이지가 30 초 내에 완전히로드되는지, 2의 상태 및 적절한 메시지로 종료하지 않는지 테스트 할 코드를 추가해야합니다. 난 그냥 검색 최근 3 시간 동안 독서와 약 20 다른 일을 시도하고 난 듯 않았다 아무것도 작동하지해야Ruby와 Watir - 페이지로드에 대한 테스트
#-------------------------------------------------------------#
# Watir Login to XXXX SSO Site
# Written 2017-09-17 for ITC by Jim Clark
#-------------------------------------------------------------#
# the Watir controller
require "watir"
# set a variable
#test_site = "https://oracle.pomeroy.com"
test_site = "http://xxx.xxx"
# open a browser
browser = Watir::Browser.new :phantomjs
#puts "Beginning of test: XXXX SSO Login."
#puts " Step 1: go to the test site: " + test_site
browser.goto test_site
# Test if page fully loaded after 30 seconds, if not, exit with proper status and message
# validate login site loads
if browser.text.include? "Username"
#puts " Step 2: enter username and password text fields."
browser.text_field(:name, "username").set "xxxx"
browser.text_field(:name, "password").set "xxxx"
#puts " Step 3: click login"
browser.button(:text, "Login").click
if browser.text.include? "Logged In As XXXX"
puts "OK: Test Passed. Login worked!"
status = 0
else
puts "CRITICAL: Open a SEV1 - Test login failed!"
status = 2
end
else
puts "CRITICAL: Open a SEV1 - Could not find login page!"
status = 2
end
browser.close
exit status
: 여기 내가 가지고있는 코드입니다.
"스크립트가 시간 초과되었습니다"라고 말하면'browser.goto'를 호출 할 때 예외가 발생 했습니까? 그렇다면 예외를 구하고 지정된 상태로 종료 할 수 있습니까? –
'browser.goto' 라인은 60 초 후에 타임 아웃되고 스크립트는 예외와 함께 종료됩니다. 나는 그것을 해결하기 위해 이런 짓을 : '(28) 할 browser.goto의 test_site 끝 전자 을두고 => 구조 시간 제한 : 시간 제한 시작 "중요! SEV1을 열고 - 페이지 결코로드"를 exit 2 end ' 최상의 방법이었고 의견이 열려있는 것보다 더 많은 것이 확실하지 않다. – BanditBBS
루비에서는 항상 최선의 방법과 끝없는 잠재력을 가진 토론이 '최상의 방법'이라고 생각됩니다. 나는 이것이 당신을 위해 일하고 있다면 말할 것이고, 그 다음에 그것을 사용하십시오.기본 타임 아웃 오류로 인해 무엇이 잘못되었는지 알릴만큼 충분하지 않은 경우 할 일이 거의 있습니다. –