Select 具有相同 XPATH 但没有标签或 ID 的 selenium 按钮

Select a button with selenium with same XPATH but no tag or id

我想在网上 select 一个带有 selenium 的按钮,这里是按钮的 HTML 代码:

<button type="button" ng-if="grid.appScope.edit_column" ng-click="grid.appScope.executeActionButtonEvent(row, grid.appScope.edit_column, grid['options'])" class="btn btn-default ng-scope" aria-label="Left Align">
                <span class="glyphicon glyphicon-edit glyphicon-align-left" aria-hidden="true"></span>
        </button>

它们是 1 到 5,并且具有相同的 XPATH://html/body/div[2]/div/section/section/div[1]/div/div[2]/div[1]/div[2]/div[2]/div/div[2]/div/div[1]/div/button[1]

如何在 HTML 代码中 select 没有标记的第三个或第二个按钮?

driver.find_elements_by_xpath("//html/body/div[2]/div/section/section/div[1]/div/div[2]/div[1]/div[2]/div[2]/div/div[2]/div/div[1]/div/button[1]")[2]

您可以使用 find_elements 而不是 find_element。然后就可以得到结果的2.index

如果这些按钮值中的 ng-click 属性对于每个元素都是唯一的,您可以使用如下内容:
//button[contains(@ng-click.'grid.appScope.executeActionButtonEvent(row, grid.appScope.edit_column, grid['options'])')]grid.appScope.executeActionButtonEvent(row, grid.appScope.edit_column, grid['options']) 值的任何唯一部分。
如果所有 5 个按钮元素的这些值都相同,您可以使用以下内容:
(//button[contains(@ng-click.'grid.appScope.executeActionButtonEvent(row, grid.appScope.edit_column, grid['options'])')])[3] 为第三个元素。
通常,您可以将索引从 1 到 5 放在此处显示的此表达式的末尾。