2011-12-20 32 views
2

我正在寫一個測試框架,報告應該包含測試運行的webdriver版本。當使用硒時,有getEval(「Selenium.version」)方法。但是當我使用webdriver時,我發現無法讀取版本。有誰知道解決方案?如何在Testrun期間獲得WebDriver版本?

回答

0

可以通過閱讀VERSION.txt屬性文件。這似乎哈克,但它是什麼webdriver的開發商在做SeleniumServer.java:

final Properties p = new Properties(); 
p.load(getSeleniumResourceAsStream("/VERSION.txt")); 
String rcVersion = p.getProperty("selenium.rc.version"); 
String rcRevision = p.getProperty("selenium.rc.revision"); 
String coreVersion = p.getProperty("selenium.core.version"); 
String coreRevision = p.getProperty("selenium.core.revision"); 
BuildInfo info = new BuildInfo(); 
String versionString = String.format("v%s%s, with Core v%s%s. Built from revision %s", 
    rcVersion, rcRevision, coreVersion, coreRevision, info.getBuildRevision()); 

注意,這需要一個靜態導入:

import static org.openqa.selenium.browserlaunchers.LauncherUtils.getSeleniumResourceAsStream; 
+1

感謝您的回答,但它並沒有爲我工作。 4個Versionstrings是「null」... – theBell 2011-12-20 13:47:50

+0

你是什麼版本的呢?文件是否存在?它是什麼樣子的?它適用於我在2.15.0,從一個在groovy編寫的junit測試中調用... – c089 2011-12-20 14:01:24

+0

我也在版本2.15.0上,並使用java與testng。我認爲該文件必須存在,因爲不會拋出IOException ... – theBell 2011-12-20 15:54:12

-1

實際路徑與版本中硒的文件是:

/META-INF/maven/org.seleniumhq.selenium/selenium-java/pom.properties

Properties p = new Properties(); 
p.load(LauncherUtils.class.getResourceAsStream("/META-INF/maven/org.seleniumhq.selenium/selenium-java/pom.properties")); 
p.getProperty("version");`