Selenium - 将文本发送到格式化输入

时间:2015-07-06 14:40:46

标签: java selenium selenium-webdriver

在Java中使用Selenium WebDriver,我试图将文本发送到看起来像这样的格式化输入

___-__-____

正如您可能已经猜到的那样,这是一个社会保障领域。无论如何,当我尝试使用Selenium向现场发送密钥时,它没有找到元素的麻烦,但它没有发送任何密钥并试图继续进行自动化的下一步。

我正在找到元素by.ID,它有一个id元素ssn(这个元素是唯一的),所以我知道这里的问题不是我的选择方法。

这是HTML&元素的绝对XPath:

Absolute Xpath: html/body/div[2]/p[3]/input

<body>
        <div id="logo">
            <img src="/assets/images/logo.png">
        </div>
            <br>
            <p id="errorsField" class="hidden">
                <strong></strong>
            </p>

        <input class="hidden" type="text" id="clientUrlPart" value="bigco" />
        <input class="hidden" type="text" id="is-self-registration" value="0" />

        <div id="login">

            <p>
                <label for="firstName" class="required">First Name</label>
                <input autocomplete="off" type="text" id="firstName" maxlength="25" value="">
            </p>

            <p>
                <label for="lastName" class="required">Last Name</label>
                <input autocomplete="off" type="text" id="lastName" maxlength="25" value="">
            </p>

            <p>
                <label for="ssn" class="required">Social Security Number</label>
                <input autocomplete="off" type="text" id="ssn" value="" filledSSN="">
            </p>


              <div id="newAccountInfo" class="hidden">

                <div id="self-registration" class="hidden">
...
</body>

有什么想法吗?

相关守则:

public static void registerEmployee(String firstName, String lastName, String ssn, String dateOfBirth, String address,
String city, String state, String zip, String phone, String username, String password) {
    SeleniumCommands.waitVisibleIdAndSendKeys(FIRSTNAME, firstName);
    SeleniumCommands.waitVisibleIdAndSendKeys(LASTNAME, lastName);
    SeleniumCommands.waitVisibleIdAndSendKeys(SSN, ssn);
    ...
}

public static final String SSN = "ssn";

public static void waitVisibleIdAndSendKeys(String id, String keys) {
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(id))).sendKeys(keys);
}

1 个答案:

答案 0 :(得分:1)

有时我经历过预先格式化的文本框,这样需要一次输入一个单独的密钥,而不是selenium / webdriver通常如何进行。尝试创建三个语句,分别输入一个数字,看看是否喜欢。如果是这样,你可以在ssn中对x进行for循环来遍历字符而不先将它们拆分,或类似的东西。