Python中如何用Selenium XPath同时按类名及值过滤定位元素
XPATH同时指定class属性与值过滤定位元素
当然可以,你可以在XPATH表达式里通过and运算符同时组合多个过滤条件,以下是几种常见的场景示例:
匹配class属性+元素文本内容
如果你要定位class为class_value且显示文本是目标文本的元素,写法如下:driver.find_element(By.XPATH, "//*[@class='class_value' and text()='目标文本']")如果文本只需要匹配部分内容,也可以用模糊匹配:
driver.find_element(By.XPATH, "//*[@class='class_value' and contains(text(), '部分文本')]")匹配class属性+其他属性值
比如要定位class为class_value且id属性是target_id的元素:driver.find_element(By.XPATH, "//*[@class='class_value' and @id='target_id']")同理,
name、data-*这类自定义属性也可以用同样的方式组合条件。处理多class的情况
如果元素的class属性包含多个值(比如class="class_value item-active"),直接用@class='class_value'会匹配失败,这时候可以用contains匹配class中的指定值,再结合其他条件:driver.find_element(By.XPATH, "//*[contains(@class, 'class_value') and @data-type='target']")
XPATH支持用and/or连接任意数量的条件,完全可以根据你的需求组合出精准的定位表达式。
内容的提问来源于stack exchange,提问作者kiks73
相关产品推荐
相关产品推荐

