Rspec: 执行 mkdir 然后将屏幕截图传递到新目录

Rspec: do a mkdir and then and then pass screenshots to the new directory

我创建了一个 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
</pre>

因此,如果 timestamp 是 1234,那么我假设将创建一个名为 dir_1234 的目录,并且它会在某个时候将一个名为 [=16= 的图像放入其中] 在里面。但是当我 运行 rspec 时,我得到以下错误:


Failure/Error: driver.save_screenshot("./#{dir}/screen_username.png")

     Errno::ENOENT:
       No such file or directory @ rb_sysopen - ./0/screen_username.png
     ...
</pre>

有什么想法吗?提前致谢。

Dir::mkdir always returns 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"))