我創建了一個rspec測驗,在其中我在一個it塊內創建了一個目錄,并且還截取了測驗的各種狀態的螢屏截圖。
這是我正在測驗的表單條目,因此該it塊如下所示:
...
it "confirm that a user can successfully sign up" do
timestamp = Time.now.to_i
dir = Dir.mkdir("dir_#{timestamp}")
driver = Selenium::WebDriver.for :firefox
driver.navigate.to "go/to/url"
username_field = driver.find_element(id: "user_username")
username_field.send_keys("user #{timestamp}")
driver.save_screenshot("./#{dir}/screen_username.png")
...
end
因此,如果timestamp是 1234,那么我假設dir_1234將創建一個名為的目錄,并且它會在某個時候在其中放置一個名為screen_username.pnginside 的影像。但是當我運行時rspec,我收到以下錯誤:
Failure/Error: driver.save_screenshot("./#{dir}/screen_username.png")
Errno::ENOENT:
No such file or directory @ rb_sysopen - ./0/screen_username.png
...
有任何想法嗎?提前致謝。
uj5u.com熱心網友回復:
Dir::mkdir 總是回傳 0
dir = Dir.mkdir("dir_#{timestamp}") # => 0
那是你的問題
您可以將路徑保存到某個變數
dir_path = File.join(__dir__, "dir_#{timestamp}")
Dir.mkdir(dir_path)
# your code
driver.save_screenshot(File.join(dir_path, "screen_username.png"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/440564.html
