【问题标题】:How to click on the image selenium python如何点击图片 selenium python
【发布时间】:2019-06-20 09:50:15
【问题描述】:

尝试使用selenium python点击输入类型,输入类型调用图像文件,并在图像上添加css cursor:pointer,不幸的是无法点击图像或输入

图片

代码

<input type="image" src="/images/btn_next.png">

CSS

input[type="image" i] 
{
    cursor: pointer;
}

如何点击图片“下一步”?

我试过了,但显示错误

driver.find_element_by_xpath('//input[@type="image"][@src="/images/btn_next.png"]').click()

【问题讨论】:

  • 错误是什么?
  • 感谢您的帮助好友,问题已解决:)

标签: python selenium selenium-webdriver xpath css-selectors


【解决方案1】:

尝试使用WebdriverWaitelement_to_be_clickable 点击图片。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,'//input[@type="image"][@src="/images/btn_next.png"]'))).click()

如果以上代码无法点击元素,请尝试使用 javaScript 执行器点击元素。

driver.execute_script("arguments[0].click();",driver.find_element_by_xpath('//input[@type="image"][@src="/images/btn_next.png"]'))

【讨论】:

    【解决方案2】:

    你很亲密。要在元素上click(),您需要使用 andxpath 中的 attributes 组合起来,您可以使用以下任一 @987654321 @:

    • 使用css_selector

      driver.find_element_by_css_selector("input[src='/images/btn_next.png'][type='image']").click()
      
    • 使用xpath

      driver.find_element_by_xpath("//input[@src='/images/btn_next.png' and @type='image']").click()
      

    但是当您打算在元素上调用 click() 时,理想情况下您需要为 element_to_be_clickable() 诱导 WebDriverWait,如下所示:

    • 使用css_selector:

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[src='/images/btn_next.png'][type='image']"))).click()
      
    • 使用xpath:

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@src='/images/btn_next.png' and @type='image']"))).click()
      
    • 注意:您必须添加以下导入:

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      

    【讨论】:

    • 感谢您的详细回答,它运行良好。 :)
    【解决方案3】:

    如果您运行 chrome,则可能将物理光标移动到图像并单击会有所帮助。有一个 python 包可以将物理光标移动到 web 元素上,selenium-move-cursor。

    【讨论】:

      猜你喜欢
      • 2019-04-01
      • 2021-05-02
      • 1970-01-01
      • 2018-08-16
      • 2016-02-04
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 2021-10-07
      相关资源
      最近更新 更多