# 选择需要的城市
cityEles = driver.find_elements_by_css_selector(
"#work_position_click_center_right_list_000000 em")
target = None
for cityEle in cityEles:
# 如果城市相同,找到
if cityEle == self.city:
target = cityEle
break
# 如果没找到城市
if target == None:
input(f'{self.city}不在热门城市列表中,请手动点击选中城市后,按回车继续...')
else:
target.click()
结果:
明明有匹配关系,却报不在列表中
排查:
print()输出获取到的cityEles内容,发现并不是一个城市的名字,所以获取的内容不应该是元素本身,而应该获取em元素下的文本,加上text,所以以下这行代码:
if cityEle == self.city:
应该改成:
if cityEle.text == self.city:
新手小坑。
博客讲述了在Python自动化测试过程中遇到的一个问题,即通过CSS选择器定位城市元素时,原本存在匹配的城市未被正确识别。作者发现错误在于比较元素对象而非其文本内容,通过修改代码为`cityEle.text`来比较解决了问题。这是一个新手常犯的小错误,但通过调试和理解元素属性,成功消除了这个障碍。
1351

被折叠的 条评论
为什么被折叠?



