获取错误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_
答案 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);