无需PATH变量

时间:2016-02-23 20:46:06

标签: node.js internet-explorer selenium-webdriver npm

有没有办法在不必设置PATH变量的情况下使用Internet Explorer驱动程序?原因是为了方便项目设置。不必为每个浏览器驱动程序安装路径变量要容易得多。我在几个方面浏览了网页,无法找到任何类型的解决方案。我能够让chromedriver正常工作:

var chrome = require('selenium-webdriver/chrome');
var path = require('chromedriver').path;

var service = new chrome.ServiceBuilder(path).build();
chrome.setDefaultService(service);

var driver = new webdriver.Builder().
   withCapabilities(webdriver.Capabilities.chrome()).
   build();

我尝试在这个git存储库中为找到here的iedriver做同样的事情并遇到一个问题,其中selenium-webdriver / ie.js不包含服务构建器作为selenium-webdriver / chrome.js文件。我是node.js的新手,非常感谢任何帮助,谢谢你。

2 个答案:

答案 0 :(得分:1)

您可以使用以下命令指定确切的IEDriver路径:

var webdriver = require('selenium-webdriver');
var ie = require('selenium-webdriver/ie');
var path = require('iedriver').path;

driver = new webdriver.Builder()
  .setIeOptions(new ie.Options().setExtractPath(path))
  .build();

还是可以这样做,因为考虑到您已经使用npm

安装了iedriver,所以它已经在node_modules中
var webdriver = require('selenium-webdriver');

driver = new webdriver.Builder()
  .forBrowser('internet explorer')
  .build();

答案 1 :(得分:0)

显然,。如果当前工作目录中存在名为IEDriverServer.exe的可执行文件(显式检查),则将选择该实例并绕过PATH检查(错误消息有点误导)。

您可以按照Selenium来源herehere中的逻辑进行操作。