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