2016-09-26 10 views
-1

내가 현재 날짜와 시간을 모든 단계에서 스크린 샷을 얻기 위해 노력하고 있어요,하지만 난 오류를 얻고있다스크린 샷 이름에 날짜와 시간이 포함 된 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 설정에서 스크린 샷 함수를 호출하는 중에 오류가 발생했습니다. –

+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

완벽하게 작동했습니다 :). 고맙습니다. –