Python Selenium开发Instagram bot时遇FirefoxWebElement不可下标错误如何解决
错误原因
你调用的find_element_by_xpath()方法返回值是单个WebElement对象,并不是元素列表,不支持下标取值操作,你在调用后加了[0]尝试取第一个元素,就触发了这个类型错误。
修复方案
两种方案二选一即可:
- 直接去掉代码末尾的
[0],直接写_email = browser_.find_element_by_xpath("/html/body/div[1]/section/main/div/div/div[1]/div/form/div[3]/div") - 如果你确实需要匹配多个元素取第一个,把方法换成复数形式
find_elements_by_xpath(),这时候返回值是元素列表,就可以用[0]取第一个匹配结果。
优化建议
你现在用的绝对路径XPath稳定性非常差,Instagram页面结构稍有调整就会定位失败,推荐改用属性定位的方式,比如通过name、placeholder、aria-label这类固定属性匹配邮箱输入框,适配性会高很多。
内容的提问来源于stack exchange,提问作者Axus33
相关产品推荐
相关产品推荐

