2014-03-04 21 views
0

這是我的代碼,以獲得谷歌翻譯的單詞使用phantomjs實現這一目標的program.Am我給的。無法得到谷歌的結果值轉換使用phantomjs

上午將「Word:asdasdasd」傳遞給ID爲「source」的文本區域並觸發click事件。之後嘗試檢查是否包含新創建的span標記下的結果值.For那就是檢查它的id爲「result_box」的父項是否有多個childern。如果它是一個案例,那麼我們可以說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); 
     }); 
    } 
}); 

enter image description here

輸出:

進入程序

頁加載成功

點擊頁面上

新跨越納入

值:

退出程序


我在這裏的問題是,它說新跨越標籤創建,但我沒能獲得it.Its strange.Whats的錯誤與上面的值碼?。

請人點我的解決方案。

在此先感謝

更新enter image description here

+1

'value'主要是爲'inputs'或'形式elements'.Here您可以用'的.text()'只得到裏面的文本沒有任何HTML標記 – Spokey

+0

我用'的.text嘗試( )'。它沒有工作。仍然返回空 – user

+0

控制檯中的任何錯誤? – Pavlo

回答

0

加分@Neha,

這爲我工作。

setTimeout(function(){       
console.log("After 5 sec value: " + document.getElementById('result_box').innerHTML);  
},5000); 
+0

謝謝你我的朋友:) – user

+0

嘿,我試過,包括在我的program.It沒有工作。 – user

+0

你是否刪除了phantom.exit()。因爲在超時運行之前,程序可能會退出。 – Shrikanth