2016-09-26 71 views
-1

我试图获得在与当前日期和时间的每一步的截图,但我得到的错误如何在截图名称中包含日期和时间的红宝石selenium webdriver截图?

Error: test_login(Login_page): Argument Error: wrong number of arguments (1 for 0) 

的代码是

def setup 
    @driver = Selenium::WebDriver.for :chrome 
    @driver.manage.window.maximize 
    @driver.navigate.to "https://www.findmedecor.com" 

     wait = Selenium::WebDriver::Wait.new(:timeout => 10) 

    screenshot() 
    end 

    def test_login 

    @driver.find_element(:class,'open-overlay').click 
    screenshot(DateTime.now) 
    wait = Selenium::WebDriver::Wait.new(:timeout => 10) 
    login_email = wait.until { 
     element = @driver.find_element(:name, "login_email") 
     element if element.displayed? 
    } 

    login_email.send_keys("[email protected]") 
    puts "Test Passed: login pop up found" if login_email.displayed? 
    screenshot(DateTime.now) 
    @driver.find_element(:id,'pass').send_keys('123456') 
    @driver.find_element(:id,'btn_login').click 

    puts "Logged in successfully" 

    puts "Time of test = ", DateTime.now 
    screenshot(DateTime.now) 
    end 
    $i = DateTime.now 
    def screenshot 
    @driver.save_screenshot("screenshot #{'$i'}.png") 
    $i= +1 
    end 

end 
+0

错误是哪一行?你用什么参数调用了错误的函数?你有什么试图解决这个问题? – JeffC

+0

在def setup中调用截图功能时出现错误 –

+0

我在猜测传递给'.save_screenshot()'的文件名有问题。你有没有试过像''screenshot.png''这样的简单路径?我猜这是导致问题的DateTime.now格式。 – JeffC

回答

1

的问题是,Time.now返回的格式如'2016-09-28 04:45:40 +0000'这不是Windows上的有效文件名。您只需格式化的日期/时间的东西有效像

Time.now.strftime('%Y-%m-%d_%H.%M.%S') 

它输出2016-09-27_23.33.59,然后把,在你的文件名。

http://ruby-doc.org/core-2.2.0/Time.html#method-i-strftime

+0

它工作完美:)。谢谢。 –