2016-09-26 73 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

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