2016-11-21 1 views
0

나는 그것은 발생정의되지 않은 메서드`execute_script은 '

undefined method `execute_script' for <Selenium::WebDriver::Firefox::Bridge:0x00000003cbdba0> (NoMethodError) 

/usr/lib64/ruby/gems/2.2.0/gems/page-object-1.2.2/lib/page-object/platforms/selenium_webdriver/element.rb:146:in `parent' 

/usr/lib64/ruby/gems/2.2.0/gems/page-object-1.2.2/lib/page-object/platforms/selenium_webdriver/table_row.rb:30:in `find_index_by_title' 

/usr/lib64/ruby/gems/2.2.0/gems/page-object-1.2.2/lib/page-object/platforms/selenium_webdriver/table_row.rb:15:in `[]' 

스택 트레이스 페이지 객체 보석

의 1.2.2 버전을 사용하여 내 테스트를 실행할 때이 오류가 발생하기 시작했다 방법 등

left_table_element[rank][column] 

NB를 사용하여 테이블로부터 값을 취득 할 때. 이것은 이전에 1 년 넘게 일해 왔기 때문에 새로운 문제가 도입되었는지 궁금합니다.

git blame을 보면 element.rb에서 오류가 발생하는 코드 줄이 최근에 변경되었을 수 있으며이 회귀가 발생할 수있는 것처럼 보입니까?

+0

가 최근 파이어 폭스 업데이트 한 (셀레늄 webdriver 3.x를 만) -v 설치? 예인 경우 이전 버전으로 다운 그레이드하십시오 : https://support.mozilla.org/en-US/kb/install-older-version-of-firefox –

답변

1

문제는 Selenium-WebDriver의 변경 때문입니다. 버전 3.0.0에서는 Remote::Bridge#executeScript 메서드의 이름이 #execute_script으로 바뀌 었습니다.

새로운 메소드를 사용하기 위해 페이지 객체 젬이 버전 1.2.2에서 업데이트되었습니다. 그러나 보석 의존성은 필요한 버전을 반영하도록 업데이트되지 않았습니다. 즉 Selenium-WebDriver v2.53.4가 최소 요구 사항으로 계속 나열됩니다. 이것은 결국 Page-Object v2.0 릴리스에서 수정 된 것 같습니다. 한편

, 당신은 셀레늄 - WebDriver v3으로 업그레이드하여 문제를 해결할 수 있습니다 (이 페이지 객체를 다운 그레이드하고 싶지 않은 가정) :

gem install selenium-webdriver 
0

은 당신의 페이지를 업데이트해야이 문제를 해결하려면 1.2.2 버전

보석에 -object 보석은 1.2.2