gpt4 book ai didi

java - 如何获取我的 WATIR 项目的 root 权限?

转载 作者:行者123 更新时间:2023-12-01 12:04:41 25 4
gpt4 key购买 nike

由于项目要求,我不得不从 Selenium 2.0 迁移到 Watir 和 Cucumber 框架。之前我们使用Java,经常将默认文件路径设置为:

System.setProperty("webdriver.chrome.driver",System.getProperty("user.dir")+"/browsers/chromedriver.exe");

现在我也尝试在 Ruby 中设置类似的东西,但是作为 Ruby 新手,我无法获取项目的根目录。它仅使用 __FILE__Dir.pwd 获取当前用户正在工作的文件的路径。

我的 Watir 项目结构是这样的:

root
-config
-features
-pages
-step_definitions
-support
-hooks.rb
-browsers
...
...

我想在hooks.rb中指定如果传递的参数是“Chrome”,则运行Chrome浏览器,当它是“FF”时运行Firefox浏览器,但它总是给我当前的工作目录路径和我需要根目录。

我使用的是 WINDOWS 7,使用 Ruby 版本 1.9.3p551。

最佳答案

Ruby 的 File类有几种不同的方法对您想要执行的操作很有用,因此请阅读有关 absolute_pathexpand_pathrealdirpath真实路径

我建议从 absolute_path 开始:

Converts a pathname to an absolute pathname. Relative paths are referenced from the current working directory of the process unless dir_string is given, in which case it will be used as the starting point. If the given pathname starts with a “~” it is NOT expanded, it is treated as a normal directory name.

我在桌面上的测试目录中构建了从 hooks.rb 到根目录的路径,并将以下代码添加到 hooks.rb:

PATH_TO_ROOT = File.absolute_path('../..', File.dirname(__FILE__))

运行显示:

PATH_TO_ROOT # => "/Users/ttm/Desktop/tests/ruby/root"

您始终必须维护“../..”相对字符串,但这比使用固定的绝对路径硬连接代码更容易。

我倾向于将与此类似的代码放在任何具有多个目录的项目中,尤其是当我调用库文件时。正确编写代码,只需将值分配给常量即可完成,然后可以在需要知道安装的绝对路径的任何地方引用该常量。

<小时/>
book = Roo::Excel.new(File.join(File.absolute_path('../..', File.dirname(__FILE__)),"config/data/test.xls"))

比这容易得多:

path_to_book = File.absolute_path('../../config/data/test.xls', File.dirname(__FILE__))
path_to_book # => "/Users/ttm/Desktop/tests/ruby/root/config/data/test.xls"

File.dirname(__FILE__) 是相对路径的 anchor 。只需定义所需文件的相对路径,然后让 Ruby 完成剩下的工作。

关于java - 如何获取我的 WATIR 项目的 root 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com