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

发布于 2025-01-13 06:46:50 字数 949 浏览 1 评论 0原文

我创建了一个 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 的目录code> 将被创建,并且在某个时刻,它将在其中放置一个名为 screen_username.png 的图像。但是当我运行 rspec 时,我收到以下错误:


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

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

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

I've created an rspec test where I've created a directory inside of an it block and am also taking screenshots of the various states of the test.

It's a form entry I'm testing so the it block looks like this:


 ...
 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

So if timestamp is 1234, then I'm assuming a directory named dir_1234 will be created and it will, at some point, put an image inside of it named screen_username.png inside of it. But when I run rspec, I get the following error:


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

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

Any ideas? Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

又爬满兰若 2025-01-20 06:46:50

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"))

Dir::mkdir always returns 0

dir = Dir.mkdir("dir_#{timestamp}") # => 0

That's your problem

You can save path to some variable

dir_path = File.join(__dir__, "dir_#{timestamp}")

Dir.mkdir(dir_path)

# your code

driver.save_screenshot(File.join(dir_path, "screen_username.png"))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文