求助:使用Python Selenium通过部分类名定位元素并获取完整类名失败
解决方法:通过部分类名定位元素并获取完整类名
你的代码定位失败的核心问题是CSS选择器写法错误:
- 类选择器必须以
.开头,直接写fa fa-circle atp-会被解析为标签选择器,而非类选择器; - 针对部分类名
atp-,需要用属性选择器实现部分匹配。
以下是两种正确的实现方式:
方法一:使用属性包含选择器
匹配class属性中包含atp-的元素,同时结合固定类名fa和fa-circle缩小定位范围:
# 定位目标元素 availability = driver.find_element(By.CSS_SELECTOR, ".fa.fa-circle[class*='atp-']") # 获取完整类名 full_class_name = availability.get_attribute("class")
方法二:使用类名前缀匹配选择器
精准匹配以atp-开头的类名,同时考虑类名可能出现在属性中间的情况(空格分隔的类名列表):
# 定位目标元素 availability = driver.find_element(By.CSS_SELECTOR, ".fa.fa-circle[class^='atp-'], .fa.fa-circle[class*=' atp-']") # 获取完整类名 full_class_name = availability.get_attribute("class")
这两种方法都能正确定位到目标元素,之后即可获取包含atp-green或atp-red的完整类名。
内容的提问来源于stack exchange,提问作者PlayerXxXx
相关产品推荐
相关产品推荐

