Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何以编程方式获得selenium、selenium server或selenium webdriver的运行版本?_Ruby_Selenium_Selenium Webdriver - Fatal编程技术网

Ruby 如何以编程方式获得selenium、selenium server或selenium webdriver的运行版本?

Ruby 如何以编程方式获得selenium、selenium server或selenium webdriver的运行版本?,ruby,selenium,selenium-webdriver,Ruby,Selenium,Selenium Webdriver,我正在几个环境中运行自动化测试,需要知道在运行时实际使用的是什么 我在相同的Ruby脚本中看到了不同的问题,我希望能够在运行期间捕获尽可能多的环境参数,以便它们可以包含在运行报告中,以帮助缩小差异的可能原因 所有环境都运行Windows 7 64 SP1和Ruby 2.0.0p451(2014-02-24)[i386-W32]。最严重的问题是IE(真的???),所有环境都运行相同的IE版本和构建 欢迎提出任何建议 pat您可以从gem的一个类的方法的源位置获取gem的版本。例如: Seleniu

我正在几个环境中运行自动化测试,需要知道在运行时实际使用的是什么

我在相同的Ruby脚本中看到了不同的问题,我希望能够在运行期间捕获尽可能多的环境参数,以便它们可以包含在运行报告中,以帮助缩小差异的可能原因

所有环境都运行Windows 7 64 SP1和Ruby 2.0.0p451(2014-02-24)[i386-W32]。最严重的问题是IE(真的???),所有环境都运行相同的IE版本和构建

欢迎提出任何建议


pat

您可以从gem的一个类的方法的
源位置
获取gem的版本。例如:

Selenium::WebDriver.method(:for).source_location.first[/selenium-webdriver-\d+(?:\.\d+)*/]
=> "selenium-webdriver-2.53.0"

您可以通过向驱动程序发送
status
命令来获取驱动程序的版本:

需要“selenium webdriver”
driver=Selenium::WebDriver.for:ie
driver.navigate.to“http://stackoverflow.com/"
放置驱动程序。发送(:桥)。状态

有点难看,但我终于找到了适用于iedriverserver和chromedriver的东西,诀窍是获取sysout和syserr以及pid,以便终止进程

r, w = IO.pipe
pid1 = Process.spawn('iedriverserver', :out => w, :err => [:child, :out])
puts "#{__LINE__}: #{pid1}"
sleep(1)
k = Process.kill('KILL', pid1)
puts "#{__LINE__}: #{k}"
w.close
pid2, status = Process.wait2
puts "#{__LINE__}: #{pid2}, #{status}"
out = r.read
r.close
puts out

(最终找到了代码标记…;)

以下是我在导航到url后通过status命令得到的结果:{“os”=>{“arch”=>“x86”,“name”=>“WINNT”,“version”=>“unknown”},“build”=>{“revision”=>“unknown”,“time”=>“unknown”,“version”=>“unknown”}使用firefox for Chrome和firefox,驱动程序的版本在
driver.capabilities
中提供。使用FF,我可以从[browser]中获取此版本。driver.capabilities:
code
--!ruby/object:Selenium::WebDriver::Remote::Capabilities::browser\u name:firefox:version:38.8.0:platform::windows:javascript\u enabled:true:css\u selectors\u enabled:true:takes\u屏幕截图:true:native\u事件:false:rotatable:false:firefox\u配置文件::代理:handlesalers:true webStorageEnabled:trueapplicationCacheEnabled:true databaseEnabled:true locationContextEnabled:true acceptSslCerts:true
code
与驱动程序版本无关我指的是ChromeDriver、IEDriverServer、,我显然没有把它放在我所得到的混乱代码中的正确位置:为Selenium::Webdriver获取未初始化的常量错误。我会继续努力的。啊哈!将Webdriver更改为camel案例:Webdriver和瞧!成功了!