sendKeys到无法检查的文本框(使用Java)

时间:2019-08-31 13:52:27

标签: java selenium selenium-webdriver

我有一个带有无法检查的文本框的警报框,并且想将密钥发送到此文本机器人。

inspect absent

public void handleprompt() throws InterruptedException {
    driver.get("http://www.tizag.com/javascriptT/javascriptprompt.php ");
    driver.findElement(By.xpath("//input[@onclick='prompter()']")).click();
    Thread.sleep(3000);
    Alert prompt = driver.switchTo().alert();
    prompt.sendKeys("abcd");
}

没有错误,但文本在文本框中不可见或我的代码不正确

2 个答案:

答案 0 :(得分:1)

Hai Bro,您的代码没有问题,我只是简单地复制粘贴您的代码并执行它,就可以了

public void handleprompt() throws InterruptedException {
    driver.get("http://www.tizag.com/javascriptT/javascriptprompt.php ");
    driver.findElement(By.xpath("//input[@onclick='prompter()']")).click();
    Thread.sleep(3000);
    Alert prompt = driver.switchTo().alert();
    prompt.sendKeys("abcd");
    prompt.Accept();
}

接受警报弹出窗口后,您可以看到输入的文本。

答案 1 :(得分:-1)

我取消了睡眠(这不是一个好习惯),而是添加了一个等待Alert,sendKeys然后接受的等待。我注意到发送后在警报中没有看到该文本,但是当警报被接受时,它会显示“ abcd”文本。

public void handleprompt() throws InterruptedException {
    String url = "http://www.tizag.com/javascriptT/javascriptprompt.php";
    driver.get(url);
    driver.findElement(By.xpath("//input[@onclick='prompter()']")).click();
    Alert prompt = new WebDriverWait(driver, 10).until(ExpectedConditions.alertIsPresent());
    prompt.sendKeys("abcd");
    prompt.accept();
}

我测试了此代码,并且可以正常工作。