我正在尝试在浏览器(即客户端)中运行 Node js 代码。我正在使用 browserify 将我的代码转换为浏览器兼容的代码。我下面的代码使用selenium web-driver 和cheerio。我用这个命令来转换它
block 引用>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 的转换不正确还是 selenium web 驱动程序无法使用 browserify 在浏览器中运行?如果是这样,我的选择是什么。任何具有类似示例的有用文章或博文都将受到高度赞赏。
最佳答案
您正在尝试在浏览器中运行 webdriver 测试代码...它将尝试启动外部进程(作为 webdriver 可执行文件),因此您无法在浏览器中执行此操作。 您看到的错误的出现是因为 browserify 不仅仅是一个 bundler ,它会转换您的 Node 代码,以便它可以在浏览器中运行 - 它提供自己的版本是各种内置函数 - 例如缓冲区、控制台等......和进程。 Browserify 版本的 process 仅包含 process.nextTick()。
关于javascript - 未捕获错误 : process. 不支持绑定(bind)(browserify+selenium-webdriver),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44506182/