从元素的文本中获取数字并通过ProtractorJS注入xpath字符串

时间:2018-08-09 15:11:25

标签: javascript selenium-webdriver protractor

背景

基本上,我要做的是从一页上的元素中获取文本。将抓取的文本解析为数字,但仍保持字符串格式,因此我可以将其进一步用于xpath查询字符串。参见下面的代码

var bookingRefString = element(by.css(".panel-header span")).getText();
var bookingRef = String(bookingRefString).match(/\d+/);
element(by.id("menu_item_control")).click();
element(by.xpath(".//tr/td[1]//*[text()='" + bookingRef + "']/../..")).click();

我回来的错误

Failed: No element found using locator: By(xpath, .//tr/td[1]//*[text()='null']/../..)

从这个问题中我可以得出的结论

因此,可以得出结论,很明显,它没有解析“ bookingRefString”以获取注入到xpath中的“ null”所声明的数字。

1 个答案:

答案 0 :(得分:3)

尝试:

element(by.css(".panel-header span")).getText().then((bookingRefString) => {
    var bookingRef = bookingRefString.match(/\d+/);
    element(by.id("menu_item_control")).click();
    element(by.xpath(".//tr/td[1]//*[text()='" + bookingRef + "']/../..")).click();    
});