当前位置: 首页 > 知识库问答 >
问题:

使用Python Selenium上传文件而不使用“input”html

唐修能
2023-03-14

我想为Python Selenium上传一个文件,但是send_keys方法(用文件的目录发送密钥)不起作用,我得到一个'message:element not interactable'。这是由于事实上,我的上传按钮不包含一个“输入”的html代码。我目前的代码允许你点击“上传文件”按钮,然后打开小的Mac Os窗口。在那之后,我不知道我能做什么。很明显,send_keys方法不起作用。

我正在使用的网站也允许拖放,但我被告知硒的拖放不起作用。

我读了很多关于它的文章,但我找不到一个特定于Python的解决方案。很多解决方案都涉及到Java,但我找不到适合Python的解决方案。我能做点什么吗?

button8=driver.find_element_by_xpath(“//[contains(@id,'filename')和contains(@class,'x-btn')]”)按钮8.click()time.sleep(1)按钮9=driver.find_element_by_xpath(“//[contains(@id,'ext-comp-1056')和contains(@class,'x-btn')]按钮9.click()按钮9.send_keys('/users/sebastiendupont/desket/screen Shot

(表id=“ext-comp-1056”cellspacing=“0”class=“x-btn btn-right upload-files x-btn-noicon”style=“width:100%;职位:相对;Z-索引:1;“)(tbody class=”x-btn-small x-btn-icon-small-left“)(tr)(td class=”x-btn-tc“)(td) (/i)(/td)(td class=”x-btn-tc“)(td class=”x-btn-mc“)(em class=”x-unselectable“unselectable=”on“)(button type=”button“id=”ext-gen179“class=”x-btn-text“)+上传文件...(/button)(/em)(/td)(td class=”x-btn-mr“)(i) (/i)(/td)(/td)(/td)(/tr)(/tbody)(/table)(td class=”x-btn-bl“)(i) (/i)(/td)(/tr)(/tbody)(/table)(td class=”x-btn-bc“)(td class=”x-btn-br“)

代码发送以下经典信息:

文件“/library/frameworks/python.framework/versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py”,第242行,在check_response引发exception_class(message,screen,stacktrace)selenium.common.exceptions.elementnotinteractable中

请告诉我,我是Python和Selenium的初学者,但我使用过复杂的代码。谢谢!

共有1个答案

王泓
2023-03-14

您可以使用外部工具AutoIt。你必须先在AutoIT编辑器中编写脚本,然后编译它,这样它就会生成。exe文件。

之后,您必须使用下面的代码在python中执行那个。exe文件

import subprocess
subprocess.Popen(<path to AutoIT .exe file>)
 类似资料:
  • 如何使用selenium webdriver通过窗口提示从本地上传文件? 我想执行以下操作: 点击窗口上的“浏览”选项 从窗口提示符转到保存文件的本地特定位置 选择文件,然后单击“打开”以上传文件。

  • 问题内容: 我想将文件上传到给定的文件夹。 错误是: 注意:未定义的变量:第3行的C:\ wamp \ www \ sdg \ import \ ips.php中的HTTP_POST_FILES 问题答案: 以下是一种上传文件的方法,还有许多其他方法。 正如@nordenheim所说,自PHP 4.1.0起已弃用,因此不建议使用。 PHP代码(upload.php) HTML代码启动功能 希望这可

  • 问题内容: 我已经通过ftp成功上传了文件,但是现在我需要通过SFTP进行上传。我可以成功连接到远程服务器,创建文件并写入文件,但是无法将现有文件从本地服务器上载到远程服务器。ftp_put是否不通过sftp连接触发? 我的代码用来写文件: 有没有人成功抓取本地文件并通过上述方法使用sftp上传?一个例子将不胜感激。 谢谢 问题答案: 通过上述方法(涉及sftp),您可以使用stream_copy

  • 问题内容: 我意识到我可以非常轻松地使用CURL做到这一点,但是我想知道是否可以与http流上下文一起使用,以将文件上传到远程Web服务器,如果可以,怎么办? 问题答案: 首先,Content-Type 的第一个规则是 定义一个边界 , 该边界 将用作每个部分之间的定界符(因为顾名思义,它可以包含多个部分)。边界可以是 内容正文中不包含的任何字符串 。我通常会使用时间戳记: 定义边界后,必须将其与

  • 这是我的超文本标记语言形式: 我想从本地机器上传图像,并希望读取上传文件的内容。所有这些我都想使用AngularJS来完成。 当我试图打印它是未定义的。

  • 问题内容: 这是我的HTML表单: 我想从本地计算机上传图像,并想读取上传文件的内容。我想使用AngularJS进行的所有操作。 当我尝试打印时,它的值是未定义的。 问题答案: 这里的一些答案建议使用,但不幸的是,这是Internet Explorer 9及更低版本中不可用的浏览器对象。如果需要支持那些较旧的浏览器,则需要使用或使用Flash 的备份策略。 已经有许多Angular.js模块可以执