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

用Selenium定位“文件上传”按钮

谷弘致
2023-03-14

我有如下所示的按钮(图像和HTML),并试图单击它。

Selenium无法定位它--我尝试通过xpath和ID进行定位。

<input id="wsUpload1" type="file" name="file">

XPath:

element = driver.find_element_by_xpath('//input[@id="wsUpload1"]')
element.click()

共有1个答案

周宏胜
2023-03-14

可能性

  1. 页面中具有相同id的重复web元素。
  2. 元素可能在帧中。您需要切换到帧
  3. 试图在加载页面之前访问web元素。请留出一些等待时间。
 类似资料:
  • 如何使用selenium webdriver通过窗口提示从本地上传文件? 我想执行以下操作: 点击窗口上的“浏览”选项 从窗口提示符转到保存文件的本地特定位置 选择文件,然后单击“打开”以上传文件。

  • 我寻找解决方案,但我没有找到任何除了集成它与自动或自动热键... 第一行打开Firefox的文件上传框。

  • 问题内容: 码: 但是我收到以下错误: 问题答案: 问题是-您将键发送到不“可交互” 的元素,不接受键-因此出现“无法聚焦元素”错误。 您链接的解决方案背后的想法是 将密钥发送到 负责文件上传的元素。在HTML中找到此元素,然后向其发送密钥。 请注意,此元素可能是不可见的。在这种情况下,你应该先使其可见的工作。 更新: 好的,现在我们至少知道哪个元素是我们想要的元素: 由于找不到此元素很麻烦,请尝

  • 问题内容: 如何使文件选择器的按钮文本国际化?例如,此代码向用户呈现的内容: 问题答案: 它通常由浏览器提供并且很难更改,因此解决该问题的唯一方法是CSS / JavaScript hack,

  • 我有一个页面,其中包含文本,文本字段,普通表单按钮和文件上传按钮(打开文件上传对话框)。 可以访问除文件上传按钮之外的所有其他元素。我已经尝试过两者。单击()和 JavaScript可执行文件,但据我所知(视觉上)文件对话框永远不会打开。但是,没有错误消息。 页面来源: 单击按钮的C#/Selenium代码: 注意:我使用一个按钮类和一个JavaScriptActions类来处理对ChromeDr

  • 问题内容: 我的测试需要在不同的浏览器中上传测试文件(我使用+ )。对于单个文件上传,一切正常。我只是发送路径 Firefox:我找不到正确的语法。 任何想法? 所有浏览器都有通用的语法吗? 问题答案: 据我所知,硒 仍然 不支持多个文件上传(请参阅google code上的问题 )。 至少有一种解决方法:显然创建一个包含所需输入字段的表单。这不是最佳的解决方案,因为它(可能)需要更改您的代码才能