作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 selenium 在 Python 中开发一个浏览器自动化项目。我正在尝试将图片上传到页面。我登录,转到该页面,然后单击上传按钮。单击上传按钮后,会打开一个 Windows 文件浏览器,我必须在其中选择文件路径并点击 Windows 浏览器上的打开按钮。我希望使这个过程自动化。以下是正在发生的事情的图像,以澄清:
现在,我想提供文件路径并单击打开按钮。要单击“上传照片”按钮,我使用以下代码行:
browser.find_element_by_css_selector("a._3m1z").click()
我在网上搜索了一下,找到了 send_keys 函数。我尝试了以下方法:
browser.find_element_by_css_selector("a._3m1z").send_keys(os.getcwd()+"/image.png")
我收到以下错误:
File "C:\Users\Umar\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
(Session info: chrome=79.0.3945.88)
有人能指出哪里出了问题并指出正确的方向吗?我正在使用 python 3.7
最佳答案
Selenium 只能与浏览器交互。单击“上传照片”按钮后出现的窗口是 Windows 文件资源管理器,与浏览器无关。你必须使用像 PyWinAuto 这样的工具或 AutoIt与文件资源管理器交互。
关于您要实现的目标,有一些解决方法:(1) 使用 API,(2)将文件路径直接传递给上传按钮等。根据脚本的目的(自动化 UI 测试、自动化您的某些任务等),其中一些替代方案比其他替代方案更好。
关于python-3.x - Python selenium 使用windows浏览器上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59558106/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!