2012-02-16 2 views
1

열립니다시간 초과 : 오류

br.frame(:name, "frameset").frame(:name, "main_content").span(:class=>"tabtext", :text=>/Row/).click 

새 브라우저 창이 열립니다이 Watir과 코드를 사용하여

<label>&nbsp;Row&nbsp;</label> 

을,하지만 난이 오류 메시지가 :

Timeout::Error: Timeout::Error 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/protocol.rb:132:in `readline' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:2551:in `read_new' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:1316:in `catch' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:1293:in `request' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:1286:in `block in request' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:745:in `start' 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:1284:in `request' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/default.rb:81:in `response_for' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/default.rb:43:in `request' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:590:in `raw_execute' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:568:in `execute' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:350:in `clickElement' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/common/element.rb:34:in `click' 
from /Users/zeljko/.rvm/gems/ruby-1.9.3-p0/gems/watir-webdriver-0.5.3/lib/watir-webdriver/elements/element.rb:107:in `click' 
from (irb):75 
from /Users/zeljko/.rvm/rubies/ruby-1.9.3-p0/bin/irb:16:in `<main>' 

브라우저 창에 이상한 점이 없습니다. 새 창은 꽤 빨리 열립니다. 왜 타임 아웃 오류가 발생했는지 확신 할 수 없습니다. 내가 없애기 위해 할 수있는 일이 있습니까? 아니면 응답 속도가 느린 페이지입니까?

예외를 해결하면 새 창을 닫고 스크립트를 계속 진행할 수 있지만 오류를 해결하지는 않겠습니다.

환경 : 맥 OS X 10.7.3, 파이어 폭스 10.0.1, 루비 1.9.3p0, 셀레늄 webdriver 2.19.0, Watir과 - webdriver 0.5.3

업데이트 : 내가

꽤 문제는 창문이 열려서 발생하는 것임을 확신합니다. window.showModalDialog. 예를 들어, 다음과 같이 제한 시간이 있음 :

더 자세히 조사하고 질문을 업데이트합니다. Selenium이 아직 window.showModalDialog을 지원하지 않는 것 같습니다 : http://code.google.com/p/selenium/issues/detail?id=284

+0

문제를 재현 할 수있는 예제를 만들 수 없다면 도움이 될 것입니다. – jarib

+0

이미 드라이버 시간 초과가 증가 했습니까? –

+0

이것은 브라우저에서 탐색하는 것뿐만 아니라 새 창을 여는 것과 관련이 있습니까? .click은 로컬 브라우저가 무언가를하고 시간을 초과 할 것으로 기대하고 있습니까? –

답변

0

기본 HTML에서 일반적으로 클릭에 응답하는 것이 아닌 스팬을 클릭하기 때문에 어떤 종류의 자바 스크립트 코드가있는 것으로 의심됩니다 아마도 onclick 이벤트를 보는 것에 응답하여 실행됩니다.

.click 대신 .fire_event('onclick')을 사용하여 시도해 보았습니까? 그래도 새 페이지를 여는 코드가 여전히 호출되지만 시간 초과를 피할 수 있습니까?

+0

@Chuck에게 감사 드려요.하지만 도움이되지 못했습니다. –

+0

Windows에 있다면 Fiddler2 HTTP 프록시를 사용하여 트래픽을 감시하고 이행되지 않은 서버에 대한 요청이 있는지 확인하는 것이 좋습니다. mac 또는 * nix 시스템에 해당하는 내용이 확실하지 않습니다. –

+0

좋은 아이디어. 고객이 추가 조사에 자금을 지원하기로 결정한 경우이를 시도 할 것입니다. 지금은 타임 아웃 예외를 구하고 스크립트를 계속 진행합니다. 그것은 가장 쉬운 일이었습니다. –