SendKeys只在文本字段

时间:2018-01-18 05:34:02

标签: javascript selenium

脚本正在运行货件创建表单,定位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个字符的状态,但这与字段完全分开,可以完全忽略。我无法通过键入字段或复制/粘贴来复制此内容。它只在自动化运行时发生。

2 个答案:

答案 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。

示例https://github.com/RobinHerbots/Inputmask/issues/505