python - 使用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)
解决方案
driver.find_element_by_xpath("//span[contains(text(), 'Daily Tasks')]"
也试试这个选项
driver.find_element_by_id("button-1184-btnInnerEl")
还可以尝试为chrome或opera安装一个名为cropath的扩展,当你还在学习时它非常有用
推荐阅读
- google-play - 上传到 Google Play 内部应用共享不再有效,返回 500 错误
- python - 使用python和shape在python中将行向量转换为列向量应该导致(n,1)到(1,n)?
- powershell - 调用函数时出现异常
- swift - rxswift 在处理之前接收最后一个元素
- postgresql - 自昨天以来在线排名前 100 位的用户 postgres
- node.js - 在 Node 中实现“take N”转换流
- image - Chrome 84 中缩小的图像模糊
- asp.net - 使用视图模型类插入数据
- c++ - 以纳秒为单位的 C++ 当前系统时间为长整数,以便发送 influxdb
- compiler-errors - 让 CLion 抑制外部标头中的警告/错误