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

如何点击具有值的输入元素作为 使用Selenium和Python下载目录

程鸿煊
2023-03-14

我正在尝试自动下载 excel 文件。这是我第一次使用Selenium,我通常不使用Python编码,所以可能是一个基本问题。

我已经登录并勾选了一个复选框,但倒数第二步是点击一个下载按钮,这似乎是一个。我看了看堆栈溢出和谷歌我可以找到类似的问题,但我不能找到一个解决方案来修复我的问题。我通常使用

.find_element_by_xpath

这适用于其他所有内容,但不适用于下载按钮。我添加了一个等待以确保页面已完全加载,但它并没有使它变得更容易。

#Downlod checked Catalogue
CatDownloadBtn = driver.find_element_by_xpath('/html/body/div[3]/form/div[2]/input[1]')
CatDownloadBtn.click()

我已经厌倦了 xpath 和完整的 xpath 都没有工作。

我得到以下错误。

selenium . common . exceptions . elementclickinterceptedexception:Message:Element click interceptedexception:元素在点(213,17)处不可点击。其他元素将接收点击:...

督察 -

<div class="col-md-offset-0 col-md-10 downloadBtn">
        <input name="submit" type="submit" class="btn btn-default" value="Download Catalogues">
        <input name="submit" type="submit" class="btn btn-default" value="Download Attributes">
        <input name="submit" type="submit" class="btn btn-default" value="Download Enhanced Data">
</div>

共有3个答案

艾凌龙
2023-03-14

ElementClickInterceptedException是一个异常,当一些其他元素出现在另一个元素或其他元素前面时,会阻止真正的人类单击(例如,当您需要向下滚动时)。你可以尝试的解决方案很少。

CatDownloadBtn = driver.find_element_by_xpath('/html/body/div[3]/form/div[2]/input[1]')
driver.execute_script('arguments[0].click()', CatDownloadBtn) # Performs a Javascript click

您可以在单击之前检查是否需要向下滚动。

driver.execute_script("window.scrollTo(0, Y)") # Y is the height

可以使用以下方法按值选择按钮:

CatDownloadBtn = driver.find_element_by_xpath('//input[@value="Download Catalogues"]')
巫马令
2023-03-14

指示无法正确执行单击,因为目标元素以某种方式被遮挡。

尝试如下JS脚本示例

ele = driver.find_element_by_xpath("//input[@class='button']")
driver.execute_script("arguments[0].click();", element)

如果不起作用,请尝试等待

wait.until(ExpectedConditions.elementToBeClickable(元素));

胡俊弼
2023-03-14

这通常是因为您尝试单击的元素不可单击,有多个“构建块”来创建一个工作元素,此错误通常是因为您尝试单击错误的“块”而发生的。

解决这一问题的一种方法是尝试单击不同的元素,无论是向上一级还是向下一级,我认为在您的情况下,它应该更高,因为“输入”通常不可单击。

由于我不知道该网站是什么,所以我无法提供具体信息

 类似资料:
  • 我尝试通过selenium(python)从GoogleTrend下载CSV数据。 在前面,我尝试打印源页和提取数据,我以后想要。它在一段时间内起作用,但现在不起作用了。 导入sys导入时间 从selenium导入webdriver.Common.Keys导入selenium.webdriver.Common.Action_Chains导入selenium.webdriver.Support.UI

  • 我的目标是使用selenium python来点击这个超链接元素,下面是我尝试过的3个解决方案,没有一个有效。 解决方案1: 错误消息:selenium.common.exceptions.javascriptException:消息:javascript错误:无法读取未定义的属性“click” 那么,每个解决方案都出了什么问题呢?我怎么才能让它起作用?

  • 我希望上面的xpath的输出能够定位selenium中的元素,但实际上我得到了错误。

  • 问题内容: 我的代码中有如下所示的元素: 我想设置它的值,所以我用它的xpath创建了一个web元素: 但是现在我看不到设置值的选项… 问题答案: 使用代替 要么 或(使用javascript) 或使用JavascriptExecutor 要么 希望它能对您有所帮助:)

  • 问题内容: 以下是HTML结构: 并且有一个config.py供用户输入。如果用户在config.code中输入23456,Selenium python如何选择第二个对象?我用来查找和选择对象,但是只能选择第一个对象,即 Code =‘12345’ 。我尝试使用,但这是元素而不是元素。任何人都可以帮助..... 问题答案: 要根据用户使用Selenium和python的输入来定位元素,您需要为引

  • 我将取消使用的网页。此applet生成一个选择标记,我想单击其中的一个选项。 在运行时确实找到了该元素:

  • 下面是一个危险的find元素,因为索引可能会改变