java - 如何在不改变实际卡号的情况下屏蔽信用卡号以在selenium中发送 key ?

标签 java selenium selenium-webdriver credit-card masking

我试图在玩 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/

相关文章:

java - 如何通过vbscript运行java程序(jar文件)?

Java 多态性——根据子类型选择正确的方法

java - Resilience4J Retry 的预期行为是什么?

python-2.7 - 使用 scrapy 从 Flipkart 上抓取数据

javascript - 通过 Selenium WebDriver 从 JavascriptExecutor 接口(interface)使用 executeScript 方法时,arguments[0] 和 arguments[1] 是什么意思?

java - Collection.sort(arraylist) 在函数中排序另一个 arraylist

java.lang.ClassCastException : java. lang.StackOverflowError 无法转换为 java.lang.Exception

java - Selenium 测试未按预期运行

java - 我想在使用窗口句柄时拆分存储在字符串中的值

xpath - Selenium findByXpath 中的运算符不起作用