下面是一个示例
超文本标记语言
<button id="visible-btn">visible button</button>
<p>selected file is: <span id="selected-file"></span></p>
javascript(通常隐藏在内部)
document.getElementById('visible-btn').addEventListener('click', function(e){
const ele = document.createElement('input');
ele.type = 'file';
ele.accept = '*';
ele.onchange = function (e){
document.getElementById('selected-file').innerText = e.path[0].files[0].name;
}
ele.click();
})
因为输入元素不在dom中,所以我不能用下面的python代码发送文件路径
file_path = '/path/to/file'
driver.find_element(By.XPATH, '//input').send_keys(file_path)
有什么办法解决这个问题吗?非常感谢
编辑1
问题来自Facebook创建者工作室[https://business.facebook.com/creatorstudio/published?content_table=post_type=FB_SHORTS]
“新建”按钮打开文件选择对话框
1条答案
按热度按时间brtdzjyr1#
看起来你试图将上传的文件发送到错误的元素。
上传的文件应该发送到由以下XPath定位的element element:
//input[@type='file']
。此元素不可见,并且不应是动态的。所以你的代码应该是: