我希望从标签<label for='input_6_36' >Label String</label>
<input name='input_36' id='input_6_36' type='text'>
属性中获取输入。
以下是一些示例HTML:
wd.addPromiseChainMethod(
'inputFromLabel',
function(text) {
return this
.elementByXPath("//label[contains(., '" + text + "')]")
.getAttribute('for', function(val) {
console.log(val);
});
}
);
以上是动态生成的,因此我无法对ID进行硬编码以获取输入,因此以这种方式接近它。
所以这是我的自定义承诺方法。
it.only('test name', function(done) {
this.page
.inputFromLabel('Label String').type('test')
.nodeify(done);
});
其中如下所示:
inputFromLabel
因此,使用我的自定义for
promise方法,我想从提取的for
值返回输入。
我知道此时此刻,我的自定义方法不会返回输入。
我需要从我当前登录到控制台的值中获取输入,但是我似乎无法使用给定的ID从它的ID中获取元素?
以下是我认为我想遵循的一系列步骤:
i[1]
属性
如何退回输入?
答案 0 :(得分:1)
试试这个我觉得这可行:
wd.addPromiseChainMethod(
'inputFromLabel',
function(text) {
var browser = this;
return browser
.elementByXPath("//label[contains(., '" + text + "')]")
.getAttribute('for')
.then(function(value) {
return browser.elementById(value);
});
});