未捕获错误:不支持process.binding(browserify + selenium-webdriver)

时间:2017-06-12 18:18:46

标签: javascript node.js selenium selenium-webdriver browserify

我正在尝试在浏览器中运行节点js代码,即客户端。我使用browserify将我的代码转换为浏览器兼容代码。我下面的代码使用了selenium web-driver和cheerio。我用这个命令转换它

  
    

browserify test.js -o btest.js

  

我的代码如下所示:

var cheerio = require('cheerio');
var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;
var driver = new webdriver.Builder()
    .forBrowser('chrome')
    .build();


function getdata(email,username,password,callBack,errCallBack){

var url = 'https://www.linkedin.com/in/'+username;
driver.get('https://www.linkedin.com/');
driver.findElement(By.xpath('//*[@id="login-email"]')).sendKeys(email);
driver.findElement(By.xpath('//*[@id="login-password"]')).sendKeys(password);
driver.findElement(By.xpath('//*[@id="login-submit"]')).click();

driver.get(url);
attr={};
driver.findElement(By.className('profile-view-grid')).getAttribute("innerHTML").then(function(profile) { 
    var $= cheerio.load(profile);
    attr['ResearchInterest']=$('h2.pv-top-card-section__headline').text().trim();
});

callBack(attr);


}

当我在我的html代码中包含btest.js并尝试运行它时,我收到错误:

 Uncaught Error: process.binding is not supported

Uncaught ReferenceError: getdata is not defined

我不确定问题是什么。是使用browserify进行转换不正确还是使用browserify无法在浏览器中运行selenium web驱动程序?如果是这样,我的选择是什么。任何有用的文章或博客文章都有类似的例子,我们非常感谢。

1 个答案:

答案 0 :(得分:0)

您正在尝试在浏览器中运行webdriver测试代码...这将尝试启动外部进程(作为webdriver可执行文件),因此您无法在浏览器中执行此操作。 您看到的错误是因为browserify不仅仅是一个捆绑器,它会转换您的节点代码以便它可以在浏览器中运行 - 它提供了自己的版本是各种内置的 - 例如缓冲区,控制台等...和进程。 Browserify版本的流程只包含process.nextTick()。