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 放在此处显示的此表达式的末尾。
我想在网上 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 放在此处显示的此表达式的末尾。