如何通过编程获得selenium、selenium服务器或selenium网络驱动程序的运行版本



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

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

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

欢迎提出任何建议。

pat

您可以从其中一个类的方法的source_location获取gem的版本。例如:

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

有点难看,但我终于得到了适用于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

(最后计算出代码标记…;)

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

require "selenium-webdriver"
driver = Selenium::WebDriver.for :ie
driver.navigate.to "http://stackoverflow.com/"
puts driver.send(:bridge).status

相关内容

最新更新