首页 > 解决方案 > 从元素的文本中获取数字并通过 ProtractorJS 注入 xpath 字符串

问题描述

背景

本质上,我想做的是从一页上的元素中获取文本。将抓取的文本解析为数字但仍为字符串格式,因此我可以进一步将其用于 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']/../..)

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

因此,很明显,它没有解析从“null”注入到 xpath 中所述的数字的 bookingRefString。

标签: javascriptselenium-webdriverprotractor

解决方案


试试看:

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

推荐阅读