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

browser.wait()直到.getAttribute()返回true

白永昌
2023-03-14
browser.get('https://material.angularjs.org/latest/#/demo/material.components.select');

var topping = element(by.model('topping'));

topping.click();

browser.wait(function() {
    return topping.getAttribute('aria-expanded').then(function(value) {
        return value == 'true';
    });
}, 5000);

var toppingOptions = element.all(by.css('[role="option"]'));

toppingOptions.get(5).click();

expect(topping.getText()).toBe('Onion');

这给了我一个错误:

元素在点(436,693)处不可单击。其他元素将接收单击:

还有一个注意事项,如果我将browser.sleep(1000);放在topping.click()之后,放在browser.wait()之前,则测试通过。所以我知道剩下的测试不是失败的地方。由于某种原因,等待的呼叫不起作用。

我认为这可能与以下事实有关:当单击topping时,我尝试单击的选项在技术上不可见,因为它位于带有scroll元素的组合框中。如果有人知道一个好的方法来模拟滚动到“洋葱”元素,这将是非常感谢的。

共有1个答案

甘英光
2023-03-14

等待条件函数中缺少return:

browser.wait(function() {
    return topping.getAttribute('aria-expanded').then(function(value) {
        return value == 'true';
    });
}, 5000);

注意,我还简化了then回调内部的比较逻辑。

或者,也可以等待选项元素变得可见:

var EC = protractor.ExpectedConditions;

var toppingOptions = element.all(by.repeater("topping in toppings"));
browser.wait(EC.visibilityOf(toppingOptions.first()), 5000);

toppingOptions.get(5).click();
 类似资料:
  • 但API只返回值的一半。返回并且样式的剩馀部分被裁剪。 我试图提取可见性的值,但该方法没有返回样式的完整值。因此,我无法确定可见性的正确值。 我执行了 NEXTAG_STORES_DIV对应于id元素的xpath,通过xpath提取元素

  • 本文向大家介绍Nginx直接返回Json的实例,包括了Nginx直接返回Json的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇Nginx直接返回Json的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我需要等到javascript的结果匹配字符串或布尔值。 使用此javascript: 我得到一个“假” /“真”值,我需要等到该值是“假”,所以我确定视频不是在寻找视频,而是找到了一种等待javascript命令值的方法而不是检查值是否与某些文本匹配的方法。 因为在某些情况下,我得到的不是布尔型字符串,而是需要比较那些字符串。 我已经找到了如何在Ruby中而不是在Java中做到这一点

  • 我正在学习这个教程,它试图通过构建一个最小的JVM来最小化JVM内存占用。

  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • 概述 我正在为我的谷歌表格做一个脚本。 我有一个助手方法,它将电子邮件作为参数(字符串),然后将该电子邮件邀请到google驱动器文件夹。 我还有edit()函数,每当Google Sheets中的字段发生更改时,就会调用该函数。 问题: 当助手方法被调用本身从谷歌脚本它的工作正常,我得到了一个邀请。当我在谷歌工作表中时,助手方法从edit()触发时,它不会一路发送邀请。它在返回false的同时函