在进一步讨论之前,让我们先了解为什么以及何时使用switch方法。框架、通知和窗口可以使用硒切换方法进行切换。在框架、警报或窗口内执行一个操作之前,我们的测试脚本需要切换。如果不切换,应用程序将引发异常。switchTo()提供对不同的Selenium开关方法的访问。为了传输将来的命令,switchTo()返回一个目标位置。
切换到帧
有4种方法来选择一个框架,只有一种方法去到父上下文:
- 使用WebElement
- 使用名称或ID:
driver.switchTo () .frame(“iframe”);
- 使用索引:
driver.switchTo () .frame (0);
留下一个框架
切换到警报
弹出框是通知用户或请求某种操作的警报。有3种不同类型的通知和4种不同的事情,你可以做一个警报。三种不同的警报类型是:
- 信息警报:包含1个按钮和一条消息。
- 确认警报:该警报有一条消息和两个按钮。
- 提示警报:提示警报消息有两个按钮和一个文本输入框。
警报通常显示为灰色禁用背景。该网站是灰色的,因为它不能用于执行操作。这个警报需要某种方式来处理。
接下来的测试脚本切换到警报,如果弹出的图像是警报,则接受警报。
@Test public void demoSwitchToAlert () {driver.get("https://blog.perficient.com/");.accept .alert driver.switchTo () () ();}
切换到窗口
所有窗口都有一个由Selenium分配的不同的字母数字id。id用于在每个窗口之间切换控制,称为窗口句柄。有两种获取窗口句柄的技术:
- 使用getWindowHandle()获取当前窗口句柄。
- 使用getWindowHandles()获取窗口句柄列表。
下面的语句行获取窗口句柄和窗口句柄:
- 字符串mainHandle = driver.getWindowHandle():获取主页窗口句柄。
- Set
allHandles = driver.getWindowHandles() :获取两个窗口句柄。
测试快乐!