我试图在玩 selenium webdriver 测试时阻止信用卡号码显示在屏幕上。我正在从中央数据库中提取信用卡号,但在测试中未找到。为了确保安全,我想在 selenium 尝试 sendKeys
信用卡号输入字段中的号码时屏蔽卡号。我尝试了不同的选项,但它们往往会改变卡的实际值(value),从而在页面中引发卡号错误。有没有关于如何在不影响 Selenium 的实际值(value)的情况下掩盖实际卡的任何想法。
这是我所做的:
String creditCardNumber = "1234567891234567";
driver.findElement(By.id("label")).sendKeys(
maskCardNumber(creditCardNumber, "xxxxxxxxxxxxxxx"));
<小时/>
public static String maskCardNumber(String cardNumber, String maskedCard) {
// format the number
int index = 0;
StringBuilder maskedCardNumber = new StringBuilder();
for (int i = 0; i < maskedCard.length(); i++) {
char c = maskedCard.charAt(i);
if (c == '#') {
maskedCardNumber.append(cardNumber.charAt(index));
index++;
} else if (c == 'x') {
maskedCardNumber.append(c);
index++;
} else {
maskedCardNumber.append(c);
}
}
// return the masked number
return maskedCardNumber.toString();
}
最佳答案
- 最佳解决方案是使用测试号码或一次性卡
- 如果您有权访问网页 DOM,只需将输入类型“文本”更改为“密码”
关于java - 如何在不改变实际卡号的情况下屏蔽信用卡号以在selenium中发送 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26370928/