2013-12-21 45 views
1

與紅寶石硒webdriver的工作,我發現我可以這樣做:添加方法硒的webdriver在Ruby中

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

,雖然這是很好的,我希望能夠做到這本:

driver.find_element_id("myID") 

是否有可能以某種方式將此方法添加到WebDriver類?

+0

也許你可以打開類像任何其他類?並添加該方法?如果你可以打開字符串,爲什麼不WebDriver? class 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 yes ..因爲這個已經包含'Driver','Element'類了..您需要將該方法添加到適當的位置。 –

+0

然後,當我嘗試擴展「模塊Selenium :: WebDriver :: Element」時,如何得到消息「元素不是模塊」? –