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