使用SeleniumBase等待图片元素可见,选择器格式是否正确?
问题分析与解决
你的XPath选择器写法完全错误,这就是等待操作没生效的原因。
错误点说明
- 你把绝对路径和错误的属性判断逻辑混在一起,完全不符合XPath语法规范
input=cell_state_header_icon.png这种写法不对,XPath里判断元素属性必须用@属性名='属性值'的格式
正确的选择器写法
可以基于input元素的src属性来定位,推荐两种更可靠的写法:
- 匹配完整src路径:
sb.wait_for_element_present("//th/input[@src='../../..//images/icons/cell_state_header_icon.png']", timeout=None)
- 匹配src中的文件名(更稳定,不怕路径结构变动):
sb.wait_for_element_present("//th/input[contains(@src, 'cell_state_header_icon.png')]", timeout=None)
额外提示
别用/html/body/...这种绝对路径,页面结构稍微变一下就会定位失败。优先用元素的属性、层级关系写相对路径XPath,稳定性更高。
内容的提问来源于stack exchange,提问作者robm
相关产品推荐
相关产品推荐

