我想覆蓋方法Selenium::WebDriver.for
。這是我嘗試過的:如何覆蓋類方法
module SeleniumWebDriverExtension
def self.for(browser, *args)
if browser != :phantomjs
super(browser, *args)
else
options = {
"phantomjs.cli.args" => ["--ssl-protocol=tlsv1"]
}
capabilities = Selenium::WebDriver::Remote::Capabilities.phantomjs(options)
super(browser, desired_capabilities: capabilities)
end
end
end
Selenium::WebDriver.prepend(SeleniumWebDriverExtension)
但是我在調用Selenium::Webdriver.for(:phantomjs)
時出錯。
NoMethodError: super: no superclass method `for' for Selenium::WebDriver::Driver:Class
如何從重寫方法調用原始方法?
聰明,謝謝!我們現在使用這個來修改'NewRelic :: Agent :: Hostname.get',並使其回退到超級。 – Raffael