如何解决硒循环中的这个错误? InvalidSelectorException:消息:无效选择器:无法使用 xpath 定位元素

Posted

技术标签:

【中文标题】如何解决硒循环中的这个错误? InvalidSelectorException:消息:无效选择器:无法使用 xpath 定位元素【英文标题】:How can I solve this error in selenium for a loop? InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath 【发布时间】:2022-01-16 10:45:30 【问题描述】:

我试图在 selenium 中为网站创建一个 for 循环,以检查几个按钮之一是否可单击,然后单击它,如果在可单击之前不刷新它。现在使用我的 Xpath,我在以下代码下方收到错误(InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression Xpath=...

如果你能帮上忙就好了 我还没有找到任何对我有帮助的东西! 否则,我的问题的不同解决方案也会很好! 谢谢!

paths = ['Xpath=//*[@id="mms-app-root"]/div[2]/div/div[2]/div[2]/div[2]/div/div/div/div/div[4]/div[1]/div[2]/button', 'Xpath=//*[@id="mms-app-root"]/div[2]/div/div[2]/div[2]/div[3]/div/div/div/div/div[4]/div[1]/div[2]/button', 'Xpath=//*[@id="mms-app-root"]/div[2]/div/div[2]/div[2]/div[4]/div/div/div/div/div[4]/div[1]/div[2]/button']

for i in range(len(paths)):
    if(len(wd.find_elements_by_xpath(paths[i])) > 0):
        wd.find_element_by_xpath(paths[i]).click()
        break
    else:                                                                                                          
        print('not available')
        time.sleep(8)
        wd.refresh()
        time.sleep(2)

InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression Xpath=//*[@id="mms-app-root"]/div[2]/div/div[2]/div[2]/div[2]/div/div/div/div/div[4]/div[1]/div[2]/button because of the following error:
TypeError: Failed to execute 'evaluate' on 'Document': The result is not a node set, and therefore cannot be converted to the desired type.

【问题讨论】:

【参考方案1】:

您似乎需要从表达式中删除 Xpath= 前缀以使其有效。

【讨论】:

以上是关于如何解决硒循环中的这个错误? InvalidSelectorException:消息:无效选择器:无法使用 xpath 定位元素的主要内容,如果未能解决你的问题,请参考以下文章

当我尝试使用for循环单击所有链接时,硒显示陈旧错误?

Python 硒错误处理

如何等到硒python中的元素可用

请用酱实验室代码提出这个硒脚本有啥问题

尝试运行脚本时如何解决mac上的硒问题

如果列表中的文本具有相似的路径,如何查找