selenium - Selenium XPath,选择具有相同类名的按钮
问题描述
我有如下所示的 html:
<button onclick="newInputScenario()" class="btn btn-primary">New...</button>
<button onclick="uploadInputScenario()" class="btn btn-primary">Upload...</button>
<button onclick="diffScenarios('idb');" class="btn btn-primary">Diff...</button>
<button onclick="newUserScenario()" class="btn btn-primary">New UDS...</button>
但以上所有class
名称都相同。
我一直在使用以下代码,但它不适用于上面,因为我需要单击第二个按钮Upload...
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
if __name__ == '__main__':
path_to_chromedriver = r'C:\chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path=path_to_chromedriver)
wait = WebDriverWait(browser, 5)
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@class='btn btn-primary']"))).click()
如何修改我上面的代码才能点击Upload...
解决方案
试试下面的代码。
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@class='btn btn-primary'][.='Upload...']"))).click()
您也可以使用下面的 xpath。
//button[@class='btn btn-primary'][2]
//button[@onclick='uploadInputScenario()']
推荐阅读
- bash - 在 bash 中获得“权限被拒绝”时回显字符串
- css - 表格单元格宽度无论如何都没有响应......已经这样做了 6 年
- amazon-dynamodb - 将 AWS Dax 客户端连接到 localstack DynamoDB?
- ruby-on-rails - RoR - 如何让管理员在索引页面上显示单个用户文档?
- matlab - 旋转圆柱轴使其垂直于 XY 平面
- python - 如何索引表标签以返回链接列表的熊猫 df?
- latex - 乳胶小页面定位
- wordpress - 如何使用 Jetpack 解决 wordpress 上的传输错误?
- python - 使用 Pyhton Pandastable 和 DataExplore 对数据进行表格和绘图
- activemq - 升级 ActiveMQ 并将旧任务迁移到新任务时出现问题,停机时间最短