Не удалось получить значение результата из Google Translate с помощью phantomjs

0

Это мой код, чтобы получить перевод google слова, присваивающего в программе. Используя phantomjs для этого.

Проезжаю "Word: asdasdasd" в текстовую область с идентификатором "источник" и запуская событие click.После этого пытаюсь проверить, является ли значение результата, которое обернуто под вновь созданным тегом span или нет. Для этого я проверяю, его родитель с идентификатором "result_box" имеет более одного элемента. Если это случай, то мы можем сказать, что тег span создается динамически после передачи значения в textarea.

var page = require('webpage').create();
console.log("Entering the program");
page.onConsoleMessage = function (msg) { 
    console.log(msg); 
};
page.open("http://translate.google.com", function(status) {
    if(status == 'success'){
        console.log("Page loaded "+ status);
        page.includeJs("//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", function() {
            setTimeout(function() {
                var data = page.evaluate(function() {
                    $('#source').val("asdasdasd");
                    var ev = document.createEvent("MouseEvents");
                    ev.initEvent("click", true, true);
                    document.querySelector("input[id='gt-submit']").dispatchEvent(ev);
                    console.log("Click on page ");
                                if( $('#result_box').children.length > 0 ){
                                    console.log("New Span included");
                                    console.log("value: " + $('#result_box').val());
                                }
                                else{
                                    console.log("No span");
                                }
                                });
                                console.log("Exiting the program");
                phantom.exit()
            }, 10000);
        });
    }
});

Изображение 174551

Вывод:

Ввод программы

Успешность загрузки страницы

Нажмите на страницу

Включен новый диапазон

стоимость:

Выход из программы


Мой вопрос здесь в том, что он говорит, что новый тег span создан, но я не могу получить его значение. Он странный. Неправильно с приведенным выше кодом?.

Пожалуйста, укажите мне решение.

заранее спасибо

Обновление: Изображение 174551

  • 1
    value в основном для inputs или form elements Здесь вы можете использовать .text() чтобы получить только текст внутри него без какой-либо разметки HTML
  • 0
    Я пытался с .text() Он не работает. До сих пор возвращает пустое
Показать ещё 7 комментариев
Теги:
phantomjs
google-translate

1 ответ

0
Лучший ответ

Добавление точек в @Neha,

это сработало для меня.

setTimeout(function(){                           
 console.log("After 5 sec value: " + document.getElementById('result_box').innerHTML);    
},5000);
  • 0
    Спасибо, мой друг :)
  • 0
    Эй, я пытался включить его в свою программу. Это не сработало.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню