Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium-将文本发送到格式化输入_Java_Selenium_Selenium Webdriver - Fatal编程技术网

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

Java Selenium-将文本发送到格式化输入,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,使用Java中的SeleniumWebDriver,我试图将文本发送到如下格式的输入 \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 正如你可能已经猜到的,这是一个社会保障领域。无论如何,当我尝试使用Selenium向字段发送键时,它在定位元素时没有问题,但它不发送任何键,并尝试进入自动化的下一步 我正在通过.ID查找元素,它有一个ID元素ssn(这是该元素特有的),因此我知道这里的问题不

使用Java中的SeleniumWebDriver,我试图将文本发送到如下格式的输入

\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

正如你可能已经猜到的,这是一个社会保障领域。无论如何,当我尝试使用Selenium向字段发送键时,它在定位元素时没有问题,但它不发送任何键,并尝试进入自动化的下一步

我正在通过.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>

有时,我遇到过这样的预格式化文本框要求一次输入一个键,而不是selenium/webdriver通常的输入方式。尝试创建三个语句,每个语句输入一个数字,看看它是否喜欢这样。如果是这样,您可以在ssn中为x执行for循环,在不首先拆分字符的情况下对字符进行迭代,或者类似的操作。

如果您只发送ssn的第一部分,会怎么样?此外,您是否可以为我们重现该问题?谢谢。它不会发送任何东西到现场,但它的行为就像它一样。我将尝试添加我可以提供帮助的内容,但我已经编写了几种方法来抽象出特定于Selenium的命令,因此在我将代码添加到原始命令后,请告诉我您需要更多信息的位置。您是否尝试在sendKeys()之前先单击元素?@lmcphers是的,在发送键之前单击应该会有所帮助,请参阅:。您也可以尝试在操作之间添加一个小延迟。对不起,贾斯汀,但这对我不起作用。谢谢你的努力!
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);
}