2016-11-07 55 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文件夹,将最终使用,我们希望它使用驱动程序默认的驱动程序。

相关问题