Как передать Dynami c XPath в транспортире и огурце, используя машинопись - PullRequest
0 голосов
/ 23 марта 2020

Я хочу динамически передать параметр в моем xpath. для объектов страницы я создал класс, и он называется в моем определении шага. см. ниже

ниже мой код и сообщение об ошибке

//this is my page object
export class accountPage{

    accountNo: string;
    public accountNumberLabel = element(by.xpath('//span[text()=" '+this.accountNo+' "]'))



    async getAccountNumberLabel(): Promise<string>{
        return await Promise.resolve(this.accountNumberLabel.getText());
    }   
}

//and this is my step definition

const accountpage = new new accountPage();

Then('I assert the row  {string} for {string}',async(account_number, account_value)=>{
    accountpage.accountNo = account_number;
    await browser.sleep(2000);
    if(searchKey.includes("account_number")){
        assert.equal(await accountpage.getAccountNumberLabel(),account_value);
    }
});```

//I am receiving an error 
NoSuchElementError: No element found using locator: By(xpath, //span[text()=" undefined "])

when I read the value console.log(accountpage.accountNo) it is returning correct value

1 Ответ

0 голосов
/ 23 марта 2020

Выпуск 1:

`this.accountNo` is undefined. 

Выпуск 2:

Использование литералов шаблона для объединения строк.

element(by.xpath(`//span[text()='${this.accountNo}']`))

Убедитесь, что в консоли есть два пробела. Я имею в виду до и после неопределенного

NoSuchElementError: No element found using locator: By(xpath, //span[text()=" undefined "]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...