2014-09-30 57 views
1

我試圖上傳一個圖像,在iframe中的一種形式。我嘗試先切換到框架,然後調用uploadFile。交換機工作但上傳不起作用。我認爲上傳文件在主頁面的環境上得到了評估,所以選擇器失敗了,有沒有辦法在iframe中指定輸入?Phantomjs uploadFile在一個iframe中

browser.page.switchToFrame("iframeName"); 
// console.log(browser.page.frameContent); 
browser.page.evaluate(function(capt) { 
    console.log("test"); 
    var elementIter = document.evaluate("//input[@name='photo_upload']", document, null, XPathResult.ANY_TYPE, null); // fix to go more than 1 level down 
    if(item = elementIter.iterateNext()) 
    { 
     console.log("id is "+item.id) 
    } 
},' '); 
browser.page.uploadFile('input[id=userfile_input]', '/home/ubuntu/new_bot/profile.jpg'); 

測試thingie,只是看看js是否在正確的環境中得到評估,它的工作原理。

回答

0

解決了,顯然使用幀名稱的switchToFrame在使用phantomjs的內置方法時不起作用。當我使用switchToFrame的位置它的工作。

browser.page.switchToFrame(0);   
browser.page.uploadFile('input[name=photo_upload]', '/home/ubuntu/new_bot/profile.jpg');