这是我的代码,用于获取程序中给出的字词的谷歌翻译。使用phantomjs实现此目的。
将“Word:asdasdasd”传递给id为“source”的文本区域并触发click事件。之后尝试检查是否包含在新创建的span标记下的结果值。对于我正在检查ID为“result_box”的父母是否有多个孩子。如果是一个案例,那么我们可以说,一旦将值传递给textarea,就会动态创建span标记。
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标签已创建但无法获得它的值。它很奇怪。上面的代码有什么问题?。
请有人指出解决方案。
提前致谢
更新:
答案 0 :(得分:0)
为@Neha添加积分,
这对我有用。
setTimeout(function(){
console.log("After 5 sec value: " + document.getElementById('result_box').innerHTML);
},5000);