Phantomjs uploadFile在一个iframe中

Phantomjs uploadFile在一个iframe中

问题描述:

我试图上传一个图像,在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是否在正确的环境中得到评估,它的工作原理。

解决了,显然使用帧名称的switchToFrame在使用phantomjs的内置方法时不起作用。当我使用switchToFrame的位置它的工作。

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