Selenium元素定位报错:Python定位'Armen Khl'元素的XPath错误排查
Selenium定位元素的代码错误分析
你当前的代码存在两个明显错误:
1. Python字符串语法错误
你写的XPath路径被错误拆分了,'//*[@class="work-serf"]'/tbody/tr/td[2]/div/span这种写法在Python里是非法的——不能把字符串和标识符(比如tbody)直接用斜杠拼接,整个XPath表达式必须是一个完整的字符串。
2. XPath路径的准确性问题
就算修正了字符串语法,原路径也不够精准:
- 原HTML中
work-serf是<table>标签的class,直接用//table[@class="work-serf"]定位更明确,比//*性能更好; - 你要定位的是文本为'Armen Khl'的
<span>,可以直接通过文本内容过滤,避免定位到同路径下的其他span(比如下方的Просмотр видеоролика对应的span)。
修正后的代码示例
# 直接通过文本定位目标元素(最精准) view_text = driver.find_element("xpath", '//span[text()="Armen Khl"]') # 或者结合父级元素定位,避免页面有重复文本的情况 view_text = driver.find_element("xpath", '//table[@class="work-serf"]/tbody/tr/td[2]/div/span[text()="Armen Khl"]')
内容的提问来源于stack exchange,提问作者nohack
相关产品推荐
相关产品推荐

