当前位置: 首页 > 知识库问答 >
问题:

无法使用量角器在ng-repeat-start循环中定位元素

唐焕
2023-03-14

我在用量角器5.2.0(节点8.4.0,角度1.5)定位ng-repeat循环中的一个元素时遇到了麻烦。UI代码如下所示:

<tr ng-repeat-start="app in appsData.result" class="bordered"> 
<td>
<md-button id="{{app.name}}" class="md-raised primary" ng-click="appAction('configure', app)">
Configure and Run 
</md-button> 
</td>
</tr> 
<tr ng-repeat-end ng-show="expanded" ng-class="{'highlighted': expanded}">
var rows = element.all(by.repeater("app in appsData.result"));
rows.first().element(by.tagName("button")).getText().then(function(text){
console.log("Text: "+text);
});
<tbody>
<!-- ngRepeat: app in appsData.result -->
</tbody>

我的量角器conf文件如下所示:

exports.config = {
  seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
  getPageTimeout: 600000,
  allScriptsTimeout: 5000000,
  framework: 'custom',
  // path relative to the current config file
  frameworkPath: require.resolve('protractor-cucumber-framework'),
  capabilities: {
    browserName: 'chrome',
    'chromeOptions': {
      args: ['--no-sandbox', 'headless']
    }
  },

  // Spec patterns are relative to this directory.
  specs: [
    'features/*.feature'
  ],

  baseURL: 'http://localhost:8080/',

  cucumberOpts: {
    require: 'features/step_definitions/*.js',
    tags: false,
    format: 'pretty',
    profile: false,
    'no-source': true
  }
};

共有1个答案

章高朗
2023-03-14

如果class=“bordered”是唯一的,您可以尝试:

var rows = element.all(by.css('[class="bordered"]'));
rows.first().element(by.css('md-button')).getText().then(function(text){
    console.log("Text: "+text);
});

希望有帮助

 类似资料:
  • 问题内容: 我想在ng-repeat属性中调用函数,这是我的代码 示例plnkr html js 当我打开控制台时,我注意到了错误 我的代码的主要目标是在ng-repeat中使用函数来计算每个事件循环中的数据 问题答案: 找到了解决方案:

  • 问题内容: 作为AngularJS的新手,我正在寻找一种在触发后定位循环内元素的方法。他们当时似乎还没有准备好。谢谢你的帮助。 问题答案: 这篇博客文章讨论了在控制器中侦听事件以调用函数,而不是使用:

  • 问题内容: 当我在循环中使用Protractor时,循环索引()不是我期望的。 症状: 失败:索引超出范围。尝试访问索引为’x’的元素,但是只有’x’个元素 要么 索引是静态的,并且始终等于最后一个值 我的密码 例如: 要么 要么 问题答案: 发生这种情况的原因是因为量角器使用了诺言。 阅读https://github.com/angular/protractor/blob/master/docs

  • 问题内容: 我正在尝试处理ng-repeat循环内的范围问题-我浏览了很多问题,但还无法使我的代码正常工作。 控制器代码: 视图: 这是一个小提琴:http : //jsfiddle.net/cyberwombat/zqTah/ 基本上,我有一个包含多行文本的对象(这是一个传单生成器)。用户可以调整每行文本(文本,字体,大小,颜色等),我想为其创建预览。上面的示例仅显示了输入文本的输入字段,我希望

  • Angularjs ng用div标记重复。。我有一个带有div标记的代码,如图所示。。我想重复整个div,在第二个循环中img src是不同的。。如何使用angularjs中的ng repeat指令执行此操作?

  • 问题内容: 无论如何,有没有一项要计数,然后在循环之外显示呢? 我曾经尝试过没有成功,因为我认为每次都压倒一切。 无论如何,在我的控制器中未执行任何功能就可以做到这一点吗? 问题答案: 在ng-repeat中初始化的代码将具有不同的作用域,并且无法在循环外部访问。 试试这个: