- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个函数来随机选择付款(数字)。当找不到第一个选择(数字)时(尝试捕捉)然后我想选择另一个。
但我总是收到:
Failed: Cannot read property 'click'
发送8号时应该选择credit cart visa...
我做错了什么?元素确实存在,id也正确:
CheckoutPage3.prototype.selectPayment = function (number) {
if (number == 1) {
try {
this.elementPaymentPaypal.click().then(function () {
return 1;
}, function (err) {
console.log("payment not found, select new");
this.elementPaymentCreditCard.click();
this.elementCreditVISA.click();
number = 2;
});
}
catch (err) {
console.log('error occured');
}
}
else if (number == 2) {
this.elementPaymentCreditCard.click();
this.elementCreditVISA.click();
number = 2;
} else if (number == 3) {
this.elementPaymentCreditCard.click();
this.elementCreditMasterCard.click();
number = 3;
}
else if (number == 4) {
try {
this.elementPaymentCreditCard.click();
this.elementCreditAmericanExpress.click().then(function () {
number = 4;
}, function (err) {
console.log("payment not found, select new");
this.elementCreditVISA.click();
number = 2;
});
}
catch (err) {
console.log('error occured');
}
}
else {
try {
this.elementPrePayment.click().then(function () {
number = 5;
}, function (err) {
console.log("payment not found, select new");
this.elementPaymentCreditCard.click();
this.elementCreditVISA.click();
number = 2;
});
}
catch (err) {
console.log('error occured');
}
}
};
最佳答案
这是一个 common problem in JavaScript ,在您的页面对象中,this
并不总是您期望的那样。例如,在此处的 promise 解析函数中:
this.elementPaymentPaypal.click().then(function () {
return 1;
}, function (err) {
console.log("payment not found, select new");
this.elementPaymentCreditCard.click(); // < HERE
this.elementCreditVISA.click(); // < and HERE
number = 2;
});
this
不再引用“当前”页面对象的实例。
解决该问题的常用方法是在父作用域中保存对 this
的引用:
CheckoutPage3.prototype.selectPayment = function (number) {
var self = this;
if (number == 1) {
try {
// ...
然后使用self
代替this
:
this.elementPaymentPaypal.click().then(function () {
return 1;
}, function (err) {
console.log("payment not found, select new");
self.elementPaymentCreditCard.click();
self.elementCreditVISA.click();
number = 2;
});
关于javascript - 找不到原始元素时,如何单击另一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866495/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!