当前位置: 首页 > 知识库问答 >
问题:

如何使用python selenium在id、类名不唯一时单击元素

夹谷成仁
2023-03-14

我想单击此每日任务链接,但此处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")

获取以下错误:

提高exception_class(消息,屏幕,堆栈跟踪)selenium.common.exceptions.InvalidSelectorException:消息:无效的选择器:无法找到一个元素与xpath表达式//a[@class='x-btn名称-容器x-unselectable x-box-项目x-btn-default-小x-noicon x-btn-noicon x-btn-default-smil-noicon']//span[包含(text()='My Restaurant Configuration'],因为以下错误:语法错误:未能执行'评估'上的'Document':字符串'//a[@class='x-btn名称-容器x-unselectable x-box-项目x-btn-default-小x-noicon x-btn-default-smil-noicon']//span[包含(text()='Daily Task']'不是一个有效的XPath表达式。(会话信息:chrome=80.0.3987.163)

共有2个答案

程智明
2023-03-14

尝试以下操作:

  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(), 'Daily Tasks')]").click()
姜锋
2023-03-14
driver.find_element_by_xpath("//span[contains(text(), 'Daily Tasks')]"

还可以尝试此选项

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

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

 类似资料:
  • 问题内容: 如何使用数据库查询回调设置变量值?我该怎么办? 问题答案: 自从使用node.js已经有一段时间了,但是我想我可以提供帮助。 首先,在node中,您只有一个线程,应该使用回调。您的代码将发生的情况是查询将排队等待执行,但是循环将毫无意义地连续作为繁忙循环运行。 您应该可以通过以下回调来解决您的问题: 并这样使用 我在大约2年内没有编写任何node / js的代码,也没有进行测试,但是基

  • 我正在试着检测是否从短信中得到期望响应。所以我需要访问收到的文本的文本视图。我遇到的问题是我无法找到一种方法让驱动程序知道我需要接收的文本而不是发送的文本。 ui选择器的第一个图像显示了发送的文本被突出显示在这里它显示了id、class、package和resourse-id(不在帧内) 在ui选择器的第二个图像中,显示了接收到的文本,这里显示了id、class(超出帧)、package和reso

  • 问题内容: 我的页面上有两个元素(两个“取消”元素)。 如何单击第二个元素?显然,我无法获得ID,因为它是在每次访问时随机生成的。我可以使用什么? 问题答案: 1.使用FindElements方法,该方法使用给定的机制查找当前上下文内的所有IWebElement。(在这种情况下,您始终需要知道要查找的元素的索引。) 2.如果这些取消按钮位于不同的部分,则可以通过非ExtJS id属性进行标识。 3

  • 我有以下HTML: 我下面单击“谷歌搜索”按钮的代码在WebDriver中使用Java时运行良好。 我想用JavaScript和WebDriver来点击按钮。我该怎么做?

  • 我正试图使用chrome Driver从greytip web portal下载PDF格式的工资单。我正试图使用“driver.findelement(by.linktext(”salary“)).click();”点击链接工资。但我无法点击链接,并失败,但有以下例外。 WebDriverException:在点(198,139)不能单击元素。其他元素将收到click:...(警告:服务器没有提供

  • 我正试图点击一个硒元素。它是一个复选框,包含以下HTML代码: 包含复选框和术语的段落代码: 我尝试过三种不同的方法,但都不奏效: 请帮助解决其他问题。