首页 > 解决方案 > 使用python selenium,当id,类名不唯一时如何单击元素

问题描述

我想点击这个日常任务链接,但这里的 id 和类名不是唯一的,我的 DOM 元素是:

在此处输入图像描述

我试过了 :

#My Restaurant Configuration MENU
  driver.find_element_by_xpath("//a[@class='x-btn name-container x-unselectable x-box-item x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon']//span[contains(text()='My Restaurant Configuration']").click()
  print("second sub link")

收到以下错误:

raise exception_class(message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //a[@class='x-btn name-container x-unselectable x- box-item x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon']//span[contains(text()='My Restaurant Configuration'] 因为下面的错误:语法错误:无法在“文档”上执行“评估”:字符串'//a [@class ='x-btn name-container x-unselectable x-box-item x-btn-default-small x-noicon x -btn-noicon x-btn-default-small-noicon']//span[contains(text()='Daily Tasks']' 不是有效的 XPath 表达式。(会话信息:chrome=80.0.3987.163)

标签: pythonselenium-webdriverxpath

解决方案


driver.find_element_by_xpath("//span[contains(text(), 'Daily Tasks')]"

也试试这个选项

driver.find_element_by_id("button-1184-btnInnerEl")

还可以尝试为chrome或opera安装一个名为cropath的扩展,当你还在学习时它非常有用


推荐阅读