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"))
我创建了一个 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"))