на элементы PhantomJS

116
25 октября 2019, 18:50

Написал на коленке код для работы с OCR Yandex Translate в среде PhantomJS. Для перевода текста картинки с английского на русский. код следующий:

var webPage = require('webpage');
var page = webPage.create();
var page = require('webpage').create();
if(exist('photo.jpg')){
    remove('photo.jpg'); //удаление старых отладочных файлов
}
if(exist('example.html')){
    remove('example.html'); //удаление старых отладочных файлов
}
page.viewportSize = {
  width: 480,
  height: 800
};
page.open('https://translate.yandex.ru/ocr', function() {
page.uploadFile('input[id="fileInput"]', 'image.jpg'); //загрузка файла
page.evaluate(
        function( mouseclick_fn ) {
            var element = jQuery( 'rect' )[0];
            setTimeout(function(){mouseclick_fn( element );},5000);
        },
       mouseclick
   );
   setTimeout(function(){page.render('photo.jpg');file('example.html',page.content);phantom.exit();},10000); //для отладки
});
page.onLoadFinished = function() {
  console.log("load finished");
};
function remove(file){
var fs = require('fs');
fs.remove(file);
}
function exist(file){
var fs = require('fs');
if (fs.exists(file))
return true;
else
return false;
}
function file(filename,content){
var fs = require('fs');
fs.write(filename, content, 'w');
}
function mouseclick( element ) {
    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0 );
    element.dispatchEvent( event );
}

Нажимать на rect не хочет даже при команде в консоль хрома document.getElementsByTagName("rect")[0].click. Думаю эмитировать нажатие мышкой, но все примеры которые брал с интернета тоже не работали. Как заставить этот кусок кода работать? Заранее спасибо.

READ ALSO
Просчитать сумму всех span

Просчитать сумму всех span

Подскажите пожалуйста, есть код который берет элемент у которого есть id="price" и умножает на данные элемента id="amount" и выводит в элемент с id="summa"Но...

140
Как правильно использовать Array.filter с typescript?

Как правильно использовать Array.filter с typescript?

Мне нужно удалить все boolean значения из массива, и оставить только строки(массива состоит из boolean и string), хочу сделать это методом filter, но typeScript...

146