2016-09-26 1 views
-1

が、私は現在の日付と時刻を持つすべてのステップでスクリーンショットを取得しようとしていますが、私はエラーを取得していますスクリーンショット名に日付と時刻が含まれているRubyを使用したselenium webdriverでのスクリーンショットの取得方法?

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

コードは、問題がTime.now形式を返すことである

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セットアップでscreenshot関数を呼び出すときにエラーが発生しました –

+0

'.save_screenshot()'に渡すファイル名が間違っていると思います。 screenshot.png "'のような単純なパスを試しましたか?私はそれが問題を引き起こしているDateTime.nowのフォーマットだと思っています。 – JeffC

答えて

1

です'2016-09-28 04:45:40 +0000'のように、Windowsでは有効なファイル名ではありません。あなただけの2016-09-27_23.33.59を出力してから、ファイル名にすることを置く

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

のように有効なものに日付/時刻を再フォーマットすることができます。

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

+0

それは完全に働いた:)。ありがとうございました。 –

関連する問題