使用Selenium定位HTML表格元素获取值时遭遇TypeError错误求助
解决Selenium定位元素时的TypeError问题
嘿,我一眼就瞅出你代码里的问题啦!这个TypeError是因为你给EC.visibility_of_element_located()传参的方式不对——它只接受一个元组参数,但你直接把By.XPATH和定位字符串拆成两个参数传进去了,这就导致了参数数量不匹配的错误。
修正后的代码
把定位方式和Xpath字符串打包成一个元组传进去就行:
wait.until(EC.visibility_of_element_located( (By.XPATH, "//*[@id='pane-bus-device-inverter']/div/div[1]/div/div/section/div[1]/div[3]/div[2]/div/div[3]/table/tbody/tr/td[7]/div") ))
额外优化建议
你现在用的是超长的绝对路径Xpath,这种定位方式特别脆弱,一旦页面结构有一点点调整就会失效。推荐你换成更简洁健壮的定位方式:
- 结合目标元素的class属性定位:
# 定位第7列td下、class为cell el-tooltip的div wait.until(EC.visibility_of_element_located( (By.XPATH, "//table//td[7]/div[@class='cell el-tooltip']") )) - 如果需要精准匹配文本内容(比如专门定位显示1.07的元素):
这里用wait.until(EC.visibility_of_element_located( (By.XPATH, "//div[@class='cell el-tooltip' and normalize-space(text())='1.07']") ))normalize-space()是为了处理文本前后的空格,避免因为空格导致定位失败。
内容的提问来源于stack exchange,提问作者Amy2255
相关产品推荐
相关产品推荐

