【问题标题】:How to click the button using selenium python如何使用 selenium python 单击按钮
【发布时间】:2019-09-01 22:56:46
【问题描述】:

我是 Python 和 Selenium 的新手,我想点击 this url 中的“Afficher plus”按钮。

我试过这段代码:

plus = driver.find_element_by_css_selector("button[class='b-btn b- 
ghost']")
plus.click()

但它不起作用,我收到此错误:

selenium.common.exceptions.WebDriverException:消息:未知错误:元素 ... 在点 (390、581) 处不可点击。其他元素会收到点击:...

【问题讨论】:

  • 这确实意味着错误消息中给出的内容:该查询选择的任何元素都是不可点击的
  • 这意味着我必须睡一段时间才能加载页面!

标签: python-3.x selenium xpath css-selectors webdriverwait


【解决方案1】:

要在url 中单击文本为 Afficher plus de biens 的按钮,您必须诱导 WebDriverWait 以使 元素可单击 并且您可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.b-btn.b-ghost"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='b-btn b-ghost' and contains(., 'Afficher plus')]"))).click()
    
  • 注意:您必须添加以下导入:

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

【讨论】:

    【解决方案2】:

    您尝试点击的元素不可点击,或者可能被重叠。

    通过执行java脚本点击函数尝试点击指定元素。

    driver.execute_script("arguments[0].click();", element)
    

    另一方面,你的页面可能还没有完全加载,所以元素可能还不能点击,你可以使用等待条件:

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    element = WebDriverWait(driver, 20).until(
    EC.element_to_be_clickable(By...)) //change selector
    
    element.click();
    

    【讨论】:

    • 我已经尝试了第二种解决方案,但它不起作用我遇到了同样的问题
    • 尝试结合第一个和第二个选项,将第二个选项的最后一行替换为第一个选项的行(使用JS点击)
    • 我做到了,我得到了这个错误 selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'
    • 现在好了,是webdriver版本的问题
    猜你喜欢
    • 2018-04-30
    • 2021-01-31
    • 2020-08-06
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2021-03-18
    相关资源
    最近更新 更多