Python Selenium如何定位点击重复类下title为PaymateSolutions的元素
错误原因分析
- 方法1:XPATH语法错误,
//class[@title='PaymateSolutions']错误将属性名class作为HTML标签名检索,不存在该标签所以无法找到元素 - 方法2:定位对象错误,
title属性实际挂载在外层div标签上,你检索的p标签没有title属性,匹配不到对应元素 - 方法3:XPATH语法错误,全局匹配任意标签需要加通配符
*,//[@title='PaymateSolutions']缺少通配符不符合XPATH语法规范
正确解决方案
因为你已经明确title属性全局唯一,优先使用最简单的定位方式,等待元素可点击后直接触发点击即可:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By wait = WebDriverWait(driver, 20) # *为通配符,匹配所有带指定title属性的元素 target_ele = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@title='PaymateSolutions']"))) target_ele.click()
如果需要更高的定位精准度,同时匹配指定class和title属性,可以使用下面两种写法:
XPATH写法
target_ele = wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='MuiGrid-root MuiGrid-item' and @title='PaymateSolutions']"))) target_ele.click()
CSS选择器写法
target_ele = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[title='PaymateSolutions'].MuiGrid-root.MuiGrid-item"))) target_ele.click()
内容的提问来源于stack exchange,提问作者pythonNinja
相关产品推荐
相关产品推荐

