当前位置: 首页 > 知识库问答 >
问题:

在Selenium Web驱动程序中处理警报后如何切换回主窗口

王磊
2023-03-14

我必须编写一个selenium自动化测试脚本,在这个脚本中,测试必须创建一个模板来填充表单中的Generalize数据,并手动输入特定的细节(尝试在这里等待,直到手动输入完成),然后单击SAVE按钮。但是,如果某些必填字段被保留,系统将显示JavaScript的验证警报。我使用alert alert=driver处理此警报。切换到()。警惕();警觉的接受();在这之后,我想回到主页,等待几分钟写下缺少字段的描述,现在点击保存按钮。

如何在Selenium web驱动程序中实现这一点?

共有3个答案

宗波涛
2023-03-14

您可以尝试以下代码:driver。导航背();

朱炜
2023-03-14

接受警报框后。我们想通过获取窗口句柄细节来切换到主窗口。

//Stores the handle details

    String windowHandle=driver.getWindowHandles();

//Alert portion

    Alert alert = driver.switchTo().alert();

    alert.accept();

//After switching back to main window..

    driver.navigate.windows(windowHandle);

//It takes to the main window....
张逸清
2023-03-14

当您首先处理警报时,您必须检查警报是否存在。我将采用这种方法:

public boolean isAlertPresent() {

  boolean presentFlag = false;

  try {

   // Check the presence of alert
   Alert alert = driver.switchTo().alert();
   // Alert present; set the flag
   presentFlag = true;
   // if present consume the alert
   alert.accept();

  } catch (NoAlertPresentException ex) {
   // Alert not present
   ex.printStackTrace();
  }

  return presentFlag;

更多点击这里,也不要忘记调试一步一步地了解什么步骤警报出现/不出现。希望这对你有帮助。

 类似资料:
  • 问题内容: 我正在尝试使用switch来发出警报并执行操作,但是我遇到了错误。 现在真正的问题是当我将下面的代码放入try中时,catch可以正常工作。我的意思是它可以完美地处理警报。但是当我不经尝试使用相同代码时,捕获代码将引发以下异常 请在下面找到错误 问题答案: 这个想法是当您处理警报时,您必须先检查警报是否存在。我会使用这种方法: 在这里您可以获得详细信息,也不要忘记逐步调试以了解出现/不

  • 问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram

  • 我目前正在试用Amazon设备场,并且能够让一个虚拟应用程序工作。 然而,当我尝试在Amazon device farm上获得我想要的实际应用程序时,我无法做到这一点。我可以上传.ipa文件,压缩并上传py.tests/appium测试及其依赖项,但是测试失败。 我认为可能发生的是,民主同盟军没有识别一些自动解除通知和全球定位系统坐标警报的Desired_capabilities。 我的设置非常类

  • 我有一个需求,我想在多个驱动程序之间切换来执行测试。例如,启动android应用程序,执行一些步骤,并在桌面浏览器中进行验证。一旦完成,切换回android应用程序,并继续其余的流程。可以有多个实例,我必须在多个驱动程序之间切换

  • 我在一个场景中执行以下步骤: 打开浏览器-->导航到并单击打开新窗口的链接 使用-->在子窗口上执行操作。 关闭子窗口。 切换回父窗口。 获取当前窗口的标题。 步骤1到3工作很好。但是步骤4抛出了一个异常。为了更清楚,我在抛出异常之前包含了日志消息。n 我们正在使用一个基于flashSelenium的特殊框架,这里的开发人员已经成功地将flash Selenium与WebDriver集成在一起(最

  • 问题内容: 我有一个应用程序,允许用户选择一个选项,并根据用户选择从组件中删除一个JPanel,添加新的JPanel并重新验证该组件 看到代码: c是一个组件 我有几个JPanels,用户可以在它们之间切换,并且开关可以正常工作。但是,当我根据用户选择添加此JPanel时,以后添加的JPanels无法正确加载。是什么原因造成的? } 问题答案: 更好的方法是转向CardLayout。但是如果您想坚