我尝试使用 Python 在 Spotify Web Player 中按下重播按钮,但出现此错误。如何在网络播放器中按下按钮?
replay = driver.find_element_by_xpath("""/html/body/div[2]/div/div[4]/div[3]/footer/div/div[2]/div/div[1]/div[5]/button""")[0]
replay.click()
错误:
replay = driver.find_element_by_xpath("""/html/body/div[2]/div/div[4]/div[3]/footer/div/div[2]/div/div[1]/div[5]/button""")[0]
TypeError: 'WebElement' object is not subscriptable
原文由 Hi3t 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个错误信息…
…暗示您已将索引附加到不受支持的 WebElement 。
分析
只能索引 列表 元素。但是,在这行代码中:
driver.find_element_by_xpath("""/html/body/div[2]/div/div[4]/div[3]/footer/div/div[2]/div/div[1]/div[5]/button""")
总是会返回 一个 WebElement 。因此,您不能通过任何索引访问元素,例如[0]
、[1]
等,因为 索引 只能与 list 关联。解决方案
有两种方法可以解决这个问题。
[0]
,在这种情况下replay
将分配给通过 定位器策略 识别的第一个匹配元素,如下所示:find_element_by_xpath()
创建一个 _列表_,而不是使用find_elements_by_xpath()
并使用索引[0]
20ef7 访问 列表 中的第一个元素:参考
您可以在以下位置找到几个相关的讨论: