Это мой код, чтобы получить перевод 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);
});
}
});
Вывод:
Ввод программы
Успешность загрузки страницы
Нажмите на страницу
Включен новый диапазон
стоимость:
Выход из программы
Мой вопрос здесь в том, что он говорит, что новый тег span создан, но я не могу получить его значение. Он странный. Неправильно с приведенным выше кодом?.
Пожалуйста, укажите мне решение.
заранее спасибо
Обновление:
Добавление точек в @Neha,
это сработало для меня.
setTimeout(function(){
console.log("After 5 sec value: " + document.getElementById('result_box').innerHTML);
},5000);
value
в основном дляinputs
илиform elements
Здесь вы можете использовать.text()
чтобы получить только текст внутри него без какой-либо разметки HTML.text()
Он не работает. До сих пор возвращает пустое