我尝试按以下方式单击一个元素,但收到错误消息:
Failed: Cannot read property 'click' of undefined
代码:
'use strict;'
var PresentPage = function(){
let PresentPageTitle = element(by.xpath("//*[@id='planAndDev']/div/div/div/div/matanot/form/div[2]/h4"));
let UserPhone = element(by.id("tel"));
let Email = element(by.id("email"));
var AresForPresents = element(by.xpath("//*[@id='verticalRadioGrp']/div/select")).all(by.tagName("option")).then(function(options)
{
return options;
});
this.SelectAreaToGetPresent = function()
{
AresForPresents[3].click();
};
};
module.exports = new PresentPage();
编辑: 当在函数内部使用它时,它工作正常。
this.SelectAreaToGetPresent = function()
{
element(by.xpath("//*[@id='verticalRadioGrp']/div/select")).all(by.tagName("option")).then(function(options)
{
options[3].click();
});
最佳答案
您的代码似乎无法处理 promise 。
var AresForPresents = element(by.xpath("//*[@id='verticalRadioGrp']/div/select")).all(by.tagName("option"));
this.SelectAreaToGetPresent = function()
{
AresForPresents.then((options)=> { options[3].click(); });
};
否则,您需要async/await .
var AresForPresents;
this.SelectAreaToGetPresent = async ()=>
{
AresForPresents = await element(by.xpath("//*[@id='verticalRadioGrp']/div/select")).all(by.tagName("option"));
AresForPresents[3].click();
};
关于javascript - 无法单击具有多个选项的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45157908/