Phantomjs在iframe中上传文件

时间:2014-09-30 03:09:34

标签: javascript iframe file-upload phantomjs

我正在尝试以iframe格式上传图片。我首先尝试切换到帧,然后调用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');

测试对象,只是看看js是否在正确的环境中进行评估并且有效。

1 个答案:

答案 0 :(得分:0)

解决了,显然使用框架名称的switchToFrame在使用phantomjs的内置方法时无法工作。当我按位置使用switchToFrame时,它工作正常。

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