2014-04-16 2 views
1

Javascript 실행 프로그램을 통해 UI에서 비활성화 된 필드를 활성화하려면 Selenium Webdriver 스크립트에 다음 Ruby 코드를 작성합니다.Selenium webdriver 루비 바인딩 스크립트 용 javascript executor를 사용하여 비활성화 된 필드 활성화

browser.execute_script("browser.find_element(:xpath,'/html/body/div[5]/div/div[3]/div[2]/div[2]/div/div/div/div/div/div/input'.disabled = false") 

그러나 직면

`handleEvaluateEvent ': 구문 오류 (셀레늄 :: WebDriver :: 오류 :: JavascriptError)

내 구문이 잘못 될 수 무엇?

도움이 될 것입니다.

감사합니다. Abhishek

답변

3

문제

라인의 문제는 :

browser.execute_script("browser.find_element(:xpath,'/html/body/div[5]/div/div[3]/div[2]/div[2]/div/div/div/div/div/div/input'.disabled = false") 

는 셀레늄 webdriver 코드 대신에 자바 스크립트를 실행하려고 때문이다 - 즉 browser.find_element 자바 스크립트 없습니다.

input_field = browser.find_element(:xpath, '/html/body/div[5]/div/div[3]/div[2]/div[2]/div/div/div/div/div/div/input') 
browser.execute_script('arguments[0].removeAttribute("disabled");', input_field) 

하는 것으로 : 우리는 다음 셀레늄 webdriver를 사용하여 요소를 찾을 수 있습니다

  1. 는에 사용하기 위해 해당 요소를 통과 할 다음

    솔루션

    대신에, execute_script (arguments[0]).

  2. 필드를 더 이상 비활성화하지 않으려면 실제로는 값을 false로 설정하지 말고 비활성화 된 속성을 제거해야합니다.
  3. 아주 분명한 xpath를 사용하면 조심해야합니다. 예를 들어 작은 변화가 깨지면됩니다.
+0

고마워요! @ 재 스틴 고 그것은 일했다. 하지만 다음 문제는 위 코드 줄 뒤에 send_keys를 추가했을 때 텍스트 필드에 예상대로 값을 입력하지 못했기 때문입니다. – SoftwareTestingEnthusiast

관련 문제