Я пытаюсь запустить js-код узла в моем браузере, то есть на стороне клиента. Я использую браузер, чтобы преобразовать свой код в код, совместимый с браузером. В моем коде ниже используется веб-драйвер селена и 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);
}
Когда я включаю btest.js в свой html-код и пытаюсь запустить его, я получаю ошибку:
Uncaught Error: process.binding is not supported
а также
Uncaught ReferenceError: getdata is not defined
Я не уверен, в чем проблема. Является ли это то, что мое преобразование с использованием браузера неверно или если веб-драйвер селена не может работать в браузере с помощью браузера? Если да, то каковы мои варианты. Любая полезная статья или блогпост, имеющий похожие примеры, высоко оценена.
Вы пытаетесь запустить тестовый код webdriver в браузере... который попытается запустить внешний процесс (будучи исполняемым webdriver), чтобы вы не могли сделать это в браузере. Ошибка, которую вы видите, возникает из-за того, что браузер не просто связующий, он преобразует ваш код узла, чтобы он мог запускаться в браузере - он предоставляет собственные версии различных встроенных функций, таких как буфер, консоль и т.д.... и процесс, Версия Browserify процесса состоит только из process.nextTick().