如何将参数'WebElement'传递给方法并对他进行动作'等待'

时间:2018-03-09 10:15:22

标签: typescript webdriver protractor

我想在TypeScript中做类似的事情:

public wait(element){
    var EC = protractor.ExpectedConditions;
    browser.wait(EC.visibilityOf(element), 5000);
}

但是我收到消息“[ts]属性'元素'在类型'BasePage'上不存在” 如何更好地做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为您实际上希望这是ElementFinder而不是WebElementdocumentation表示visibilityOf()接受ElementFinder个对象。从变量名称看起来,您试图传入整个页面对象。您需要从该页面对象传入特定元素。

因此,在您的情况下,您只需通常的方式获取元素并将其传递给此函数。

var myElement = element(by.css('.some-class'));
myUtils.wait(myElement); 

答案 1 :(得分:0)

您需要的一切是: 在spec文件中导入:

import {browser, by, $, $$, ExpectedConditions as EC, element} from 'protractor';

然后在'it'阻止您要等待元素写入的位置:

const waitforMyDesiredElement = EC.visibilityOf(element);
browser.wait(waitforMyDesiredElement, 5000)