脚本正在运行货件创建表单,定位xpath,从Excel工作表输入文本。
有一个字段可以防止漏洞,当脚本正在写文本时,它将被删除,只显示文本的尾端。 以下是该脚本的摘录:
driver // works
.findElement(By.xpath(prop.getProperty("PostCodexpath")))
.sendKeys(
excel
.getCell(53, i)
.getContents()
);
driver // works
.findElement(By.xpath(prop.getProperty("Cityxpath")))
.sendKeys(
excel
.getCell(51, i)
.getContents()
);
driver // fails
.findElement(By.xpath(prop.getProperty("Statexpath")))
.sendKeys(
excel
.getCell(52, i)
.getContents()
);
对于前两个它工作正常,找到字段并输入文本,但对于第三行,我需要自动找到xpath,暂停一秒钟(没有明确的暂停,没有正在加载),然后输入文字。
该字段的背景:它具有自动提示功能,该功能建议基于前3个字符的状态,但这与字段完全分开,可以完全忽略。我无法通过键入字段或复制/粘贴来复制此内容。它只在自动化运行时发生。
答案 0 :(得分:0)
您可以尝试将输入更改为char数组,然后在char字段中输入相同内容,直到获得自动建议,然后从自动建议值中选择第一个值。
char[] ar = excelvalue.toCharArray();
String[] str = new String[ar.length];
WebElement el = driver.findElementBy.Xpath(prop.getProperty("Statexpath")));
for (int i = 0; i <= ar.length - 1; i++)
{
str[i] = String.valueOf(ar[i]);
el.sendKeys(str[1]);
Thread.sleep(200);
}
el.sendKeys(Keys.DOWN);
el.sendKeys(Keys.ENTER);
答案 1 :(得分:0)
由于表单设计,这也可能发生。例如,数据屏蔽/验证实现可能是错误的,这可能导致这种情况。请围绕此输入评估JavaScript。