WebdriverIO - 如何将字符串转换回 Xpath 定位器以供 waitForDisplay



我正在使用WebdriverIO V5 + nodejs和mocha。

我在页面对象模型中映射了一个如下所示的 xpath.js

例如:get valueLocator() { return ("//tag[contains(text(),'#')]"); }

然后我使用一个函数将 # 替换为所需的数据

import Data from './page/data'
var xpath = this.valueLocator;
var replacexpath = xpath.replace('#',Data.value);
var newxpath = this.strToObj(replacexpath);

参考功能:

strToObj(str){
var obj = {};
if(str&&typeof str ==='string'){
var objStr = str.match(/{(.)+}/g);
eval("obj ="+objStr);
}
return obj
}

参考页面

data.js
module.exports = {
value: "win 7"
}

函数工作,'newxpath' 是一种对象,现在我需要执行 WebdriverIO waitfordisplay 命令,所以下一个命令是

newxpath.waitForDisplayed(9000);

但是得到这个错误 ->"Cannot read property 'waitForDisplayed' of null"

看起来newxpath并不像Webdriver所期望的那样。如何正确执行这些步骤?

不知道为什么要在字符串和对象之间进行对话。

只需像这样使用新的 xpath(字符串,而不是 obj(:

$(newxpath).waitForDisplayed(9000);

最新更新