javascript错误:arguments [0] .setAttribute不是函数

时间:2019-03-28 11:08:56

标签: javascript protractor

以下功能给我一个错误-

javascript error: arguments[0].setAttribute is not a function

我真的不知道我在做什么错-

export async function highlightElement(webElement: ElementFinder) {
    await browser.driver.executeScript(
        'arguments[0].setAttribute("style", arguments[1]);', webElement.getWebElement, 'color: Red; border: 2px solid red;').
        then(resp => {
            return element;
        }).catch(err => {
            console.log('Error highlighting element' + err);
        });
}

我正在尝试使用它在页面上突出显示Web元素。由于此处使用tslint,因此我使用单引号。我传递给它的值是像

这样的elementFinder
element(by.xpath('//vtable/div/table/tbody'))

2 个答案:

答案 0 :(得分:0)

禁用棉绒,然后尝试下面的绒布

/* tslint:disable */
    browser.executeScript("arguments[0].setAttribute('style',arguments[1])", webElement, "color: Red; border: 2px solid red;");
/* tslint:enable */

希望对您有帮助

答案 1 :(得分:0)

应该为webElement.getWebElement(),而不是webElement.getWebElement,然后在样式值中使用!important,以防其他css值具有较高的优先级。

export async function highlightElement(webElement: ElementFinder) {
    await browser.driver.executeScript(
            'arguments[0].setAttribute("style", arguments[1]);', 
            webElement.getWebElement(), 
            'border: 2px solid red !important;'
        ).
        then(resp => {
            return webElement;
        }).catch(err => {
            console.log('Error highlighting element' + err);
        });
}