【发布时间】:2022-01-03 11:24:22
【问题描述】:
我必须从字符串 PR001-CC001578 中减去 -1 并将其作为参数传递给 xpath 以识别元素。我将它与CC 分开并从001578 中减去-1。结果是1577。但是前导零被删除,因为 xpath 识别失败。
let courseID = "PR001-CC001578";
let currCourseID = courseID.split('CC');
let otherCourseID = currCourseID[1]-1;
console.info("other Course ID:", otherCourseID);
var courseIDAssetsPg="//div[contains(text(),'%d')]";
var replaceCCId = courseIDAssetsPg.replace("%d", otherCourseID);
var CCIdLoc = element(by.xpath(replaceCCId));
console.info("locator: ", CCIdLoc )
输出:
other Course ID: 1577 //missing 0's here
locator : //div[contains(text(),'1577')]
请告诉我是否有其他方法可以处理此问题。我希望定位器是//div[contains(text(),'PR001-001577')]
提前致谢!
【问题讨论】:
-
您不能保留前导零,您必须将数字结果再次转换为字符串,并添加前导零。见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
作为中间步骤,您可以先提取前导零并将其保存在变量中,然后再将其解析为数字。
-
'00' + (currCourseID[1] - 1)你可以这样更新。 -
@Bansi29 当id超过9时你的代码会失败。
-
参考我的第一条评论,可以
let otherCourseID = (currCourseID[1] - 1).toString().padStart(6, '0');。
标签: javascript java selenium