我正在尝试以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是否在正确的环境中进行评估并且有效。
答案 0 :(得分:0)
解决了,显然使用框架名称的switchToFrame在使用phantomjs的内置方法时无法工作。当我按位置使用switchToFrame时,它工作正常。
browser.page.switchToFrame(0);
browser.page.uploadFile('input[name=photo_upload]', '/home/ubuntu/new_bot/profile.jpg');