猿问

TypeError:无效的定位器

获取错误TypeError:无效的定位器


我已经制作了可重用的函数来检查是否通过在参数中传递定位符来显示元素。请看一下代码。


export function checkDisplay(Locator) {

    expect(element(Locator).isDisplayed()).to.be.true;

}


var abc= by.css('mycss');


checkDisplay(abc)

我在这个函数中传递abc定位器,但它仍然抛出这个错误。


以下是错误。


at Object.check [as checkedLocator] 

at thenableWebDriverProxy.findElements

at ptor.waitForAngular.then 

at ManagedPromise.invokeCallback_


拉丁的传说
浏览 674回答 5
5回答

梵蒂冈之花

对于编写常用函数,可以使用javaScript mixin。它允许我们创建有用或常用函数的对象,并将其合并到任何类的原型中。量角器使用元素来定位返回ElementFinder对象的webElement。您可以为ElementFinder类创建mixin。我只是给你一个样本,然后你可以更多地探索它。ElementFinderMixin = {           function1() {},           function2() {},           function checkDisplay() {    expect(this.isDisplayed()).to.be.true;}}Object.assign(Object.getPrototypeOf(element('')), ElementFinderMixin);所以前面的代码将使所有三个函数成为ElementFinder类的一部分。这意味着您可以在代码中的任何位置访问CheckDisplay()函数。防爆。button = element(by.css('locator'));button.checkDisplay();

杨魅力

您可以使用以下代码段。 export function checkDisplay(webElement) {        expect(webElement.isDisplayed()).to.be.true;    }    var abc= element(by.css('mycss'));    checkDisplay(abc)      or     checkDisplay(element(by.css('mycss')))

30秒到达战场

试试下面的一个export function checkDisplay(Locator) {    expect(element(Locator).isDisplayed()).to.be.true;}var abc= "by.css('mycss')";checkDisplay(abc);希望它能帮助你

慕尼黑5688855

试试这个import { protractor, browser } from 'protractor';export function checkDisplay(Locator) {  var abc = element(Locator);  // Check whether element is identified or not??      var EC = protractor.ExpectedConditions;  browser.wait(EC.visibilityOf(abc), 30000, "abc element Could not found");  expect(abc.isDisplayed()).to.be.true;}var abc = by.css('mycss');checkDisplay(abc);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答