【问题标题】:Selenium - Sending text to a formatted inputSelenium - 将文本发送到格式化输入
【发布时间】:2015-09-23 18:31:44
【问题描述】:

在 Java 中使用 Selenium WebDriver,我正在尝试将文本发送到如下所示的格式化输入

___-__-____

您可能已经猜到,这是一个社会保障领域。无论如何,当我尝试使用 Selenium 将键发送到该字段时,它不会遇到定位元素的问题,但它不会发送任何键并尝试继续进行自动化的下一步。

我正在定位元素 by.ID,它有一个元素 idssn(这是该元素独有的),所以我知道这里的问题不在于我的选择方法。

这是元素的 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);
}

【问题讨论】:

  • 如果您只发送 SSN 的第一部分会怎样?
  • 另外,你能让我们重现这个问题吗?谢谢。
  • 它不会向现场发送任何内容,但它的行为就像它一样。我会尝试添加我能提供的帮助,但我已经编写了几种方法来抽象出 Selenium 特定的命令,所以一旦我将代码添加到原始代码中,请告诉我你需要更多信息的地方。跨度>
  • 你试过先点击sendKeys()之前的元素吗?
  • @lmcphers 是的,在发送密钥之前单击应该会有所帮助,请参阅:code.google.com/p/selenium/issues/detail?id=2377。您也可以尝试在操作之间添加一点延迟。

标签: java selenium selenium-webdriver


【解决方案1】:

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

【讨论】:

  • 对不起贾斯汀,但这对我不起作用。不过,感谢您的尝试!
猜你喜欢
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
相关资源
最近更新 更多