我有一个带有无法检查的文本框的警报框,并且想将密钥发送到此文本机器人。
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");
}
没有错误,但文本在文本框中不可见或我的代码不正确
答案 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();
}
我测试了此代码,并且可以正常工作。