当前位置: 首页 > 面试题库 >

硒自动接受警报

冯星阑
2023-03-14
问题内容

有谁知道如何禁用此功能?还是如何从已自动接受的警报中获取文本?

该代码需要工作,

driver.findElement(By.xpath("//button[text() = \"Edit\"]")).click();//causes page to alert() something
Alert alert = driver.switchTo().alert();
alert.accept();
return alert.getText();

但是却给出了这个错误

No alert is present (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 2.14 seconds

我正在将FF 20与Selenium 2.32一起使用


问题答案:

就在前几天,我已经回答了类似的问题,所以它仍然很新鲜。您的代码失败的原因是,如果在处理代码时未显示警报,则该警告通常会失败。

值得庆幸的是 ,来自Selenium WebDriver的人员已经为此实施了等待。因为您的代码很简单:

String alertText = "";
WebDriverWait wait = new WebDriverWait(driver, 5);
// This will wait for a maximum of 5 seconds, everytime wait is used

driver.findElement(By.xpath("//button[text() = \"Edit\"]")).click();//causes page to alert() something

wait.until(ExpectedConditions.alertIsPresent());
// Before you try to switch to the so given alert, he needs to be present.

Alert alert = driver.switchTo().alert();
alertText = alert.getText();
alert.accept();

return alertText;

您可以找到所有的API ExpectedConditions
在这里,如果你想这个方法后面的代码在这里。

此代码还解决了问题,因为关闭警报后无法返回alert.getText(),因此我为您存储了一个变量。



 类似资料:
  • 问题内容: 有谁知道如何禁用此功能?还是如何从已自动接受的警报中获取文本? 该代码需要工作, 但是却给出了这个错误 我正在将FF 20与Selenium 2.32一起使用 问题答案: 就在前几天,我已经回答了类似的问题,所以它仍然很新鲜。您的代码失败的原因是,如果在处理代码时未显示警报,则该警告通常会失败。 值得庆幸的是 ,来自Selenium WebDriver的家伙们已经等待了它。对于您的代码

  • 有这个线程(自动接受所有SDK许可)和现在已经不推荐使用的lib(https://github.com/jakewharton/sdk-manager-plugin)解决了更新(CI服务器)系统的问题,该系统解决了这个问题,但不应该再需要它们了... 在android-tools的当前版本中(我认为从2.2.0版开始),gradle将自动下载所需的SDK、构建工具等(这将是非常棒的)。 在我的例子

  • Appium v1.6.4-beta Xcode 8.2 macOs Sierra 10.12 我想自动保存照片在我的设备。但是第一次我必须给予许可。我使用了"接受警报",但不能接受允许访问照片库的警报。当我执行测试时,它以绿色显示测试通过,但是这个弹出窗口仍然出现在视图中,照片没有保存。 这是我的剧本 还使用了能力, 这是我想允许的 如何接受此警报?我试过使用xpath sa,但没有成功

  • 环境:我必须用Selenium测试一个Web应用程序。在访问起始页之前,会抛出windows安全警报。由于Alert/Verification-Popup是在os级别上,所以selenium Alert-API无法处理它。 解决方法:为了访问该页面,我编写了一个脚本,其中填充用户名和密码,然后单击enter(脚本代码来自:https://automationtestingsimplified.wo

  • 我正在设置在网站上运行的自动化测试,以确保一切仍然正常工作。我有一个显示记录表的网页。 我想测试加载选定的网页 我已经完成了前3个步骤,但我仍停留在第4步。有人能帮忙吗?谢谢康纳

  • 我试图从以下代码中找到字段名“用户设置已成功更新”: 我在C#中使用的代码是 基本上,我试图澄清,如果用户更新成功与否,所以如果成功,我希望代码返回文本“用户设置更新成功”。但我面临的问题是,即使更新成功,它也无法返回值,并抛出异常。