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