【问题标题】:Selenium: How to click a labelSelenium:如何单击标签
【发布时间】:2022-01-27 23:49:04
【问题描述】:

我正在尝试使用代码使用 selenium (pyhton) 单击此对象:

driver.find_element_by_('publicForm_customFields').click()

但我收到此错误:

id="publicForm_customFields" tabindex="0" type="radio" value="value"> 在点 (480, 98) 不可点击。其他元素会收到点击:值

【问题讨论】:

  • html 是

标签: python html selenium


【解决方案1】:

“其他元素会收到点击”表示您的元素上有另一个元素。有几个选项可以解决这个问题:

  1. 尝试在上面的 DOM 树中找到另一个元素并单击它。
  2. 使用js点击,需要这样写一个函数:
 def js_click(self, element):
        element = driver.find_element_by_id("myid")
        driver.execute_script("arguments[0].click();", element)

js脚本会点击元素,即使它被另一个元素相交

【讨论】:

    【解决方案2】:

    可能有两种可能:

    1- 您查找元素的定位器可能是错误的或不是唯一的。 2- 您需要应用明确的等待,直到元素准备好 [加载成功] 才能被点击。

    希望以上可能性对您有所帮助,或者您分享视线的链接,以便我可以正确调试。

    【讨论】:

      【解决方案3】:

      您没有将任何 find 方法传递给驱动程序。尝试将代码重构为:

      driver.find_element_by_id('publicForm_customFields').click()
      

      另外,请尝试使用某种等待,以便驱动程序在页面/元素加载之前不会单击。

      
      from selenium.webdriver.support import expected_conditions as EC
      
      wait = WebDriverWait(driver, 10)
      wait.until(EC.element_to_be_clickable((By.ID, 'publicForm_customFields'))).click()
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-20
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 2023-03-16
        • 2017-08-07
        • 2023-01-08
        • 1970-01-01
        相关资源
        最近更新 更多