TypeError:无效的定位符

时间:2019-05-16 06:18:49

标签: javascript protractor reusability

获取错误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_

5 个答案:

答案 0 :(得分:0)

尝试以下一种

export function checkDisplay(Locator) {
    expect(element(Locator).isDisplayed()).to.be.true;
}

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

checkDisplay(abc);

希望对您有帮助

答案 1 :(得分:0)

您可以使用以下代码段。

$(carousel).owlCarousel({
        slideSpeed: 500,
        paginationSpeed: 500,
        singleItem: true,
        navigation: true,
        items: 1,
        autoplay:false,
        loop:true,
        autoplayTimeout:2000,
        onChange:navigationFill,

    });



 function navigationFill() {    
        var progressbar = $(".owl-theme .owl-dots .owl-dot.active span");
        $(progressbar).animate({ width: "100%" }, 'slow');
    }

答案 2 :(得分:0)

也许尝试:

export function checkDisplay(loc: ElementFinder): void {
  expect(loc.isDisplayed()).toBeTruthy();
}

let abc = $('mycss');
checkDisplay(abc);

export function checkDisplay(loc: string): void {
      expect(element(by.css(loc)).isDisplayed()).toBeTruthy();
}

let abc = 'mycss';
checkDisplay(abc);

答案 3 :(得分:0)

要编写通用功能,可以使用javaScript mixin。它允许我们创建有用或通用功能的对象,并将其合并为任何类的原型。   量角器使用元素定位webElement,该元素返回ElementFinder的对象。 您可以为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();

答案 4 :(得分:0)

尝试

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);