RemoteWebDriver可以通過DesiredCapabilties對象通過類似「firefox」的瀏覽器實例化。Selenium - 如何通過瀏覽器名稱獲取本地WebDriver
但如何獲得像瀏覽器名稱的「FireFoxDriver」本地驅動程序?
我的用例如下:要測試的瀏覽器是通過外部文本文件中的屬性指定的。與網格url的另一個屬性設置。如果網格url設置爲「本地」,我想運行本地瀏覽器設置文本文件中的測試。
(如何)這可能嗎?
RemoteWebDriver可以通過DesiredCapabilties對象通過類似「firefox」的瀏覽器實例化。Selenium - 如何通過瀏覽器名稱獲取本地WebDriver
但如何獲得像瀏覽器名稱的「FireFoxDriver」本地驅動程序?
我的用例如下:要測試的瀏覽器是通過外部文本文件中的屬性指定的。與網格url的另一個屬性設置。如果網格url設置爲「本地」,我想運行本地瀏覽器設置文本文件中的測試。
(如何)這可能嗎?
當然。在這方面的東西?
public static void main(String[] args) {
WebDriver driver = openBrowser(args[0]);
// now work with driver as usual
}
public static WebDriver openBrowser(String browserName) {
if ((browserName == null) || (browserName.trim().isEmpty())) {
throw new IllegalArgumentException("No browser name found.");
}
// works with Java 7, on Java < 7, you have to write an if-else block instead
switch (browserName.toLowerCase()) {
case "ff": // fall through
case "firefox":
return new FirefoxDriver();
case "ie": // fall through
case "iexplore": // fall through
case "internet explorer":
return new InternetExplorerDriver();
default:
throw new IllegalArgumentException("No valid browser name found.");
}
}
我可以建議一個黑客。在本地機器上啓動selenium-server,然後使用remotewebdriver和主機url作爲http://localhost:4444/wd/hub
。
這樣您就可以使用相同的遠程驅動程序和外部文本文件來控制您在本地計算機上的測試。
thx這個建議 - 我會考慮這個。目前本地測試只能在Firefox上運行。 – dermoritz 2012-07-24 09:22:45
這就是我不想做的事情:更改代碼以支持其他瀏覽器。使用一個帶字符串的構造函數(就像遠程Web驅動程序一樣),只需更改外部文本文件即可測試其他瀏覽器。 – dermoritz 2012-07-23 05:54:58