javascript - protractor 2.0 通过改变属性获取元素

标签 javascript testing protractor end-to-end

考虑这个 html:

<my-toolbox my-toolboxtitle="{{entity.name || 'New Entity'}}">
    <input ng-model="entity.name">    
</my-toolbox>

在升级到 Protractor 2.0 之前,我可以像这样使用工具箱:

element(by.css("[my-toolboxtitle='New Entity']")).then(function(toolBox) {

    //do stuff with toolBox

    toolBox.element(by.css("input")).sendKeys(....);

    //still do some stuff with toolBox even though the title changed

});

即使 entity.name 改变了,promise 中的 toolBox 也不会改变。现在升级到 Protractor 2.0 后,我的测试在更改工具箱中的名称后失败,并显示“使用定位器未找到元素...”。有没有办法保留对 toolBox 元素的引用?

最佳答案

据我了解,以下内容应该按原样工作:

var toolbox = element(by.css("[my-toolboxtitle='New Entity']"));
toolBox.element(by.css("input")).sendKeys("test");

关于javascript - protractor 2.0 通过改变属性获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29537775/

相关文章:

swift - 如何模拟和测试存储字符串的 UserDefaults 计算属性?

perl - 使用 Test::More 在 perl 中进行单元和集成测试 - 如何捕获退出调用?

angularjs - 使用 Firefox 或 Safari 在 Protractor 中进行 E2E 测试?

angularjs - Protractor 等待超时

javascript - 销毁 jQuery TreeTable 实例

JavaScript 运行时错误 : '[MethodName]' is undefined

c - -no-pie 有什么用?

javascript - 在 Protractor For 循环中执行多个 IT block 以进行 Web 测试

javascript - Videojs requestPictureInPicture() 仅在滚动到顶部和底部时有效一次

javascript - 操作系统暂停时恢复 Android webview/在后台应用程序上运行 JavaScript?