如何使用 selenium 单击按钮 python
How to click the button using selenium python
我是 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: Message: unknown error: Element ... is not clickable at point (390, 581). Other element would receive the click: ...
您尝试点击的元素不可点击,或者可能重叠。
通过执行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();
要在此 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
我是 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: Message: unknown error: Element ... is not clickable at point (390, 581). Other element would receive the click: ...
您尝试点击的元素不可点击,或者可能重叠。
通过执行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();
要在此 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