如何使用Selenium点击非input类型的按钮
如何使用Selenium点击非input类型的按钮
嘿,我来帮你搞定用Selenium点击非input类型按钮的问题!你给出的HTML里是<button>标签的按钮,这类按钮的定位和点击思路和input按钮差不多,选对定位方式就行,我给你几个实用的方案:
- 按按钮文本定位:如果按钮上的文本是固定的,比如你这里的「CONSULTAR PRODUTO」,可以用XPath来定位。要注意有时候文本周围可能有空格或者换行,用
normalize-space()可以忽略这些干扰:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("你的目标页面URL") # 定位并点击"CONSULTAR PRODUTO"按钮 consultar_btn = driver.find_element(By.XPATH, "//button[normalize-space(text())='CONSULTAR PRODUTO']") consultar_btn.click()
- 按class属性组合定位:按钮的class属性通常是唯一的,比如那个primary按钮有
spaui-button primary的class,用CSS选择器组合定位很方便:
primary_btn = driver.find_element(By.CSS_SELECTOR, "button.spaui-button.primary") primary_btn.click()
- 按自定义属性定位:你的按钮上有
buttontype这种自定义属性,也可以用它来精准定位:
secondary_btn = driver.find_element(By.XPATH, "//button[@buttontype='secondary']") secondary_btn.click()
- 别忘了等待元素加载:有时候页面加载慢,直接定位会报错,用显式等待可以确保元素可点击后再操作:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC wait = WebDriverWait(driver, 10) # 最多等待10秒 consultar_btn = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[normalize-space(text())='CONSULTAR PRODUTO']"))) consultar_btn.click()
备注:内容来源于stack exchange,提问作者Pablo Costa
相关产品推荐
相关产品推荐

