【发布时间】:2018-02-28 18:45:32
【问题描述】:
我在我的应用程序的不同选项卡上有相同的按钮,例如保存和关闭。如果我像 //button[contains(text(), 'Save')] 这样编写 XPath,它会显示所有按钮的结果,并且显示在不同选项卡上存在“保存”文本的所有按钮,无论是活动的还是非活动的。有没有办法只为当前打开的活动选项卡获取“保存”按钮的结果?
这些是用于不同位置的“保存”按钮的 HTML。我想编写一个适用于所有“保存”按钮的 XPath,以便我可以在方法中使用它。想知道有没有办法获得当前打开的选项卡的结果?
1)
<button class="btn ng-binding btn-primary" style="margin-right:5px;" ng-class="checkDeleteCrud()" ng-click="modalActionManager()" ng-disabled="disableSaveButton()" ng-hide="crudStatus==='V'" type="button" aria-hidden="false">Save
</button>
2)
<button class="btn ng-binding btn-primary" ng-class="checkDeleteCrud()" ng-click="modalActionManager()" ng-disabled="( notValidType() || locksavebutton || !createStatisticsForm.$dirty ) && saveButtonText=='Save' " ng-hide="crudStatus==='V'" type="button" aria-hidden="false">
Save
</button>
3)
<button class="btn ng-binding btn-primary" style="margin-right:5px;" ng-class="checkDeleteCrud()" ng-click="modalActionManager()" ng-disabled="disableSaveButton()" ng-hide="crudStatus==='V'" type="button" aria-hidden="false">Save
</button>
【问题讨论】:
-
为活动和非活动标签共享 HTML
-
您是否在代码中主动切换选项卡?像这样的东西:
webdriver.switch_to_window(webdriver.window_handles[1]) -
@Andersson 我已经用 HTML 编辑了我的问题....只是想知道有没有办法获得当前打开的窗口的结果(带有保存按钮)而不是那些保存按钮网页,但目前它在不同的窗口中不可见。
-
您希望 XPath 获取提供的 3 个按钮中的哪一个?
-
@Andersson 由于这三个保存按钮位于不同的位置并且不能同时可见,所以我想编写通用的通用 XPath,它适用于当前可见的“保存”按钮,而不是编写不同的每个单独的 XPath 一样有很多。那么有什么办法吗?