【发布时间】:2015-12-15 04:55:12
【问题描述】:
我想重写方法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
如何从覆盖方法调用原始方法?
【问题讨论】:
标签: ruby overriding class-method prepend