2016-11-07 57 views
1

我有一個測試需要針對IE,CEFmp和Chrome運行。要求如下:爲量角器動態設置驅動程序路徑

  1. 應該是IE,Cefmp和鉻
  2. 一個單一conf.js如果從文件中讀取瀏覽器類型和運行鍼對該特定瀏覽器的測試。
  3. 對於Chrome和CEFmp運行,直接連接應該爲真
  4. 對於Chrome和CEFmp運行,只應選擇本地路徑中給定的特定驅動程序,而不是量角器默認路徑。

我能夠根據文件中提到的值挑選特定的瀏覽器類型,並針對它運行測試,並將Chrome和CEFmp瀏覽器類型的直接連接設置爲true。 如何,我無法找到一個解決方案,使測試拿起一個特定的Chrome驅動程序。現在選擇node_modules/protractor/selenium中給出的默認驅動程序,並運行測試。我想知道是否有辦法在特定路徑中動態選擇驅動程序?

Thankx提前。

回答

0

我猜你應該:

  • 設置多個值在文本文件中,比如 「Chrome-X」, 「鉻Y」
  • 在你謨添加一個 「webdrivers」 文件夾
  • 店內chromedrivers在它(你需要每一個版本)

然後,在你的代碼:

File chromeDriverFile = new File("webdrivers/" + webdriverAsRetrievedInYourTextFile); // you define the path here 
System.setProperty("webdriver.chrome.driver", chromeDriverFile.getAbsolutePath()); 
WebDriver driver = new ChromeDriver(); 
+0

謝謝你的回覆。量角器如何做到這一點? –

0

看來我發現了這個問題的kind-of解決方案。如果有更好的辦法做到這一點,請讓我知道。

由於我無法找到一種方法將路徑重定向到驅動程序以從本地文件夾中選取它,所以我們通過複製並使用本地驅動程序替換缺省位置驅動程序(node_module)來解決此問題(一個我們要使用)通過這種方式這樣算下來

var fs = require('fs'); 
fs.createReadStream(path.resolve(__dirname + '/bin/Drivers/CefMp/chromedriver.exe')).pipe(fs.createWriteStream(path.resolve('C:/node_modules/protractor/selenium/chromedriver.exe'))); 

,即使protractor主從node_modules文件夾,將最終使用,我們希望它使用驅動程序默認的驅動程序。

相關問題