2013-12-21 2 views
1

에 셀레늄 Webdriver에 방법을 추가, 나는 내가 할 수있는 발견 :루비에 셀레늄 webdriver 작업 루비

driver.find_element_id("myID") 
:

driver.find_element(:id => "myID") 

이 좋은 동안, 난 그냥이 작업을 수행 할 수 있도록하고 싶습니다

어떻게 든이 메서드를 WebDriver 클래스에 추가 할 수 있습니까?

+0

은 어쩌면 당신은 다른 클래스와 같은 클래스를 열 수 있습니까? 메소드를 추가 하시겠습니까? String을 열 수 있다면 WebDriver를 사용하지 않는 이유는 무엇입니까? 클래스 WebDriver def find_element_id (id) ... end end? –

+0

나는 그것이 가능하다고 생각한다. 'find_element (: id => "myID")'.. 호출 할 수있는 메소드 내에서 메소드를 정의해야한다. –

답변

3

#find_element은 모듈 Selenium::WebDriver::SearchContext의 인스턴스 메소드입니다. 그래서 모듈 Selenium::WebDriver::SearchContext 열립니다 아래와 같이 새로운 방법을 추가합니다 :

module Selenium::WebDriver::SearchContext 
    def find_element_id(id) 
    find_element(:id => id) 
    end 
end 
+0

재미 있습니다. find_element가 정확한 모듈을 알고 자신 만의 고유 한 메서드를 만들 필요가 있습니까? –

+0

@Dbugger 예 .. 이것이'Driver','Element' 클래스에도 포함 되었기 때문에 .. 적절한 위치에 메소드를 추가해야합니다. –

+0

그러면 "모듈 Selenium :: WebDriver :: Element"를 확장하려고 할 때 "요소가 모듈이 아닙니다"라는 메시지가 나타납니다. –