Selenium - 需要相对于页面上另一个对象的位置?

时间:2016-08-26 15:51:30

标签: c# selenium

在我的问题中,我有一个动态命名的复选框(我已经感谢我的开发人员),所以我找不到基于ID的对象。我以前使用过QTP,并且可以根据对象相对于其他易于识别的对象的位置来选择对象。在这种情况下,有一个包含描述的复选框列表。当复选框名称更改时,其旁边列表中的文本保持不变。

是否可以这样说 - 单击对象A左侧的复选框?

对不起,如果这有点模糊,我是Selenium的新手。只是寻找一个起点,而不是所需的代码的每个元素。谢谢!

HTML示例:

<div class="select-measures-table">
<div class="ng-scope" ng-if=" vm.isSearchDataLoaded == true">
<div class="ng-scope" ng-include="'measureGrid.html'">
<table class="table ng-scope" ng-show="vm.measures.length > 0">
<tbody>
<tr class="ng-scope" ng-include="'measureRow.html'" ng-repeat="measure in vm.measures track by measure.ThisMeasureId | orderBy:'MeasureId'">
<tr class="ng-scope" ng-include="'measureRow.html'" ng-repeat="measure in vm.measures track by measure.ThisMeasureId | orderBy:'MeasureId'">
<tr class="ng-scope" ng-include="'measureRow.html'" ng-repeat="measure in vm.measures track by measure.ThisMeasureId | orderBy:'MeasureId'">
<tr class="ng-scope" ng-include="'measureRow.html'" ng-repeat="measure in vm.measures track by measure.ThisMeasureId | orderBy:'MeasureId'">
<tr class="ng-scope" ng-include="'measureRow.html'" ng-repeat="measure in vm.measures track by measure.ThisMeasureId | orderBy:'MeasureId'">

1 个答案:

答案 0 :(得分:1)

看到你的HTML代码后,我可以看到你正在测试一个Angular JS应用程序,这可能就是Selenium无法正常工作的原因。在这种情况下,使用Protractor编写JS测试或Protractor.Net编写C#测试。

两者都建立在Selenium之上,并提供专门用于处理Angular SPA的构造。