量角器变量重用效率
protractor variables reuse efficiency
我在某处读到(我再也找不到这篇文章),当多次调用一个元素时,最好(花费更少的时间和更少的资源)使用这样的变量:
var proceed = element(by.className('proceed');
browser.wait(EC.presenceOf(proceed).click()), timeout, 'no proceed found!');
browser.wait(EC.presenceOf(proceed).click()), timeout, 'no proceed found!');
而不是像这样调用元素:
browser.wait(EC.presenceOf(element(by.className('proceed')).click()), timeout, 'no proceed found!');
browser.wait(EC.presenceOf(element(by.className('proceed')).click()), timeout, 'no proceed found!');
因为在调用变量时,它只需要在 DOM 中搜索一次元素,之后它会保存它以供以后使用。如果这是真的,这如何工作以及如何"强制"量角器搜索元素?
在量角器中,没有效率增益。量角器不实现任何缓存策略。每次对元素调用某些操作(如 click()
方法)时,它每次都会出去并找到该元素。不过,当您声明变量而不是每次都重复它时,它看起来更好,并且使您的测试更易于维护。
如果您好奇,量角器中的缓存版本如下所示:
element(by.className('proceed')).getWebElement().then(function(proceed) {
proceed.click().then(function() {
console.log('clicked proceed the first time');
}, function() {
console.log('unable to find proceed the first time (this should not happen)');
});
proceed.click().then(function() {
console.log('clicked proceed the second time (this should not happen)');
}, function() {
console.log('unable to find proceed the second time (stale element)');
});
});
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- Javascript计数器变量未显示正确的值
- delete关键字在全局变量上的不同行为
- 如何在php变量中嵌入JQuery代码
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 量角器变量重用效率
- 否则if语句在变量分配中的效率
- 在内存使用和效率方面,变量和WITH关键字哪个更好