gpt4 book ai didi

java - sendKeys() 不适用于我的输入字段之一

转载 作者:行者123 更新时间:2023-11-29 10:00:46 27 4
gpt4 key购买 nike

我在表单中有两个输入字段,它们的来源在下面提到

<input class="col8 last right i-f ssn" data-val="true" data-val-regex="Please enter valid SSN number" data-val-regex-pattern="^((\d{3}-\d{2}-\d{4}|X{3}-X{2}-X{4}))$" id="SSN" name="SSN" type="text" value="" />

<input class="col8 last right i-f" id="MiddleName" maxlength="15" name="MiddleName" onkeypress="return isAlphabetKey(event)" type="text" value="" />

我正在尝试在 selenium 网络驱动程序 (Firefox) 中使用以下命令发送输入

driver.findElement(By.cssSelector("input[id='SSN']")).sendKeys("55555");
driver.findElement(By.cssSelector("input[id='MiddleName']")).sendKeys("xyz");

当我在 TestNG 下运行时,第一个字段没有出现错误,但第二个字段工作正常,为了方便起见,我已经包含了两个输入字段的页面源代码。

最佳答案

可能的解决方案 1:对 sendKeys() 执行 javascript 调用正如您所说,很可能是文本框的格式不允许您将 sendKeys() 发送到输入框。原因可能只是 WebDriver 处理将输入放入框中的方式。我建议尝试使用 javascript 来执行不同类型的输入填充方法。

WebDriver driver = new FirefoxDriver();

JavascriptExecutor executor = (JavascriptExecutor)driver;

executor.executeScript("document.getElementById("SSN").value='55555';);

可能的解决方案 2:https://github.com/dsheiko/autofill

我没有可以向您展示如何使用自动填充的好的代码片段,但 github 本身有非常好的示例。

可能的解决方案三:去掉input标签的格式化属性,然后使用sendKeys()

((JavascriptExecutor) driver).executeScript("document.getElementsByID('SSN'[0].removeAttribute('data-val-regex-pattern');");
WebElement input= driver.findElement(By.id("SSN"));
input.clear();
input.sendKeys("55555");

关于java - sendKeys() 不适用于我的输入字段之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785881/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com