【发布时间】:2022-06-10 21:30:28
【问题描述】:
我有这段代码可以运行多年,但突然停止了。找到元素并发送键(无错误),但浏览对话框中未显示任何文本。与流行的照片共享网站交互。为帖子选择图片。我已经尝试清除并单击其他帖子中的建议,但它会出错。我还尝试将我的文件从 .jpg 更改为 jpeg,就像其他帖子中提到的那样。
image_filename = 'C:\\filefolder\\subfolder\\image.jpeg'
driver.find_element(By.TAG_NAME, 'input').send_keys(image_filename)
driver.find_element(By.XPATH, "//input[@type='file']").send_keys(image_filename)
<div class="_a3gq"> <div class="_a3gq"> <form enctype="multipart/form-data" method="POST" role="presentation"> <input accept="image/jpeg" class="_ac69" type="file"> </form></div><section class="_a997 _a998"><div></div>
【问题讨论】:
-
添加元素的
HTML源以及您遇到的错误? -
感谢您的提问。我不确定如何获取 HTML 源代码,因为文件选择窗口会阻止 chrome,我无法将其带到前面。我没有收到错误,它正在完成,但没有像以前那样在文件选择中输入文件名。
-
我会改进定位器...通过“输入”的标签名称定义不是很好。右键单击您尝试输入的输入框,然后选择“检查”。如果您谈论的是浏览对话框,则 Selenium 无法访问该对话框。通常你只需将文件的路径发送到 type="file" 的输入标签。这会将它的 value 属性设置为文件路径,就像您浏览了文件一样。然后,您可以提交要上传的表格。 (为方便起见,使用 .submit() 方法)
-
@pcalkins 我不确定如何使用提交,但我已将代码更改为
driver.find_element(By.XPATH, "//input[@type='file']").send_keys(image_filename)仍然存在同样的问题