Selenium WebDriver:如何定位含the-category属性的无class DIV元素
如何用Selenium定位带自定义属性
the-category的元素? 嘿,这个场景我太熟悉了!当元素用的是自定义属性而非标准的class/id时,咱们完全可以用CSS选择器或者XPath来搞定,这俩都是Selenium里定位自定义属性元素的常用方案。
方法一:CSS选择器(推荐,语法更简洁)
CSS选择器支持直接通过属性匹配元素,语法格式是[属性名="属性值"]。针对你的需求,要定位第一个the-category="Cat1"的<div>,代码可以这么写:
首先,如果你用的是Selenium 4.x及以上版本,推荐使用新的API(旧的find_element_by_xxx系列方法已经被弃用了),记得先导入By类:
from selenium.webdriver.common.by import By
然后定位元素:
# 定位第一个符合条件的div target_element = driver.find_element(By.CSS_SELECTOR, 'div[the-category="Cat1"]')
方法二:XPath(灵活性更强)
XPath同样可以精准定位带自定义属性的元素,语法是//div[@the-category="Cat1"],代码示例:
target_element = driver.find_element(By.XPATH, '//div[@the-category="Cat1"]')
这里的//表示在整个HTML文档中查找匹配的元素,@用来指定要匹配的属性名和对应的值。
额外小提示
如果需要获取所有带有the-category="Cat1"的div元素,只需要把find_element换成find_elements即可,它会返回一个包含所有匹配元素的列表:
# 获取所有符合条件的div元素 all_cat1_elements = driver.find_elements(By.CSS_SELECTOR, 'div[the-category="Cat1"]')
内容的提问来源于stack exchange,提问作者TJ1
相关产品推荐
相关产品推荐

