更多内容请关注我的专栏:
- 入门和 Hello World 实例
- 使用WebDriverManager自动下载驱动
- Selenium IDE录制、回放、导出Java源码
当用 Selenium 打开浏览器后,我们就可以通过 Selenium 对浏览器做各种操作,就像我们日常用鼠标和键盘操作浏览器一样,比如:
- 打开新窗口
- 切换到其它窗口
- 关闭窗口
- 关闭浏览器
- ……
今天我们就来学习这些操作。
1. 打开网页
通过 get() 函数, 我们就可以使用浏览器打开指定的网页。
driver.get("https://www.w3cschool.cn/html/html-form.html");
2. 后退 / 前进
平时使用浏览器时,我们通常会点击浏览器左上角的 [前进] / [后退] 图标,返回到前一个或下一个网页。
Selenium 也提供了这样的方法 back() 和 forward()
driver.get("https://www.w3cschool.cn/html/html-form.html");
Thread.sleep(3000);driver.get("https://www.baidu.com");
driver.navigate().back();
Thread.sleep(3000);
driver.navigate().forward();
加了延迟,是为了更清楚看到效果。
3. 另一种打开网页
前面使用driver.get(url)
是最常用的打开网页的方式,但是还有另一种方式:
driver.navigate().to("https://www.w3cschool.cn/html/html-form.html");
这种方式效果和 get()
没有太大的区别,但是它有一个好处,就是 to()
返回的是 Navigation
对象,是的,上面的 back()
和 forward()
方法都是这个对象的方法,这是一种链式调用!
WebDriver.Navigation navigation = driver.navigate();
navigation.to("https://www.w3cschool.cn/html/html-form.html");
navigation.back();
navigation.forward();
4. 获取基本信息
打开一个网页,我们通常可以看到两样东西,网页标题和网页地址,还可以查看网页的源码,用 Selenium 同样很简单做到。
driver.get("https://www.w3cschool.cn/html/html-form.html");
Assert.assertEquals("HTML 表单_w3cschool", driver.getTitle());
Assert.assertEquals("https://www.w3cschool.cn/html/html-form.html", driver.getCurrentUrl());
Assert.assertTrue(driver.getPageSource().contains("<html"));
5. 关闭窗口
有时候,我们需要关闭浏览器窗口,比如某个TAB页,就像我们平时点击 “X” 图标一样。
driver.close();
6. 关闭浏览器
我们测试完后,需要关闭浏览器,这样可以释放资源。
driver.close();
那么问题来了 quit()
和 close()
有什么区别呢?
- 如果只有一个窗口,关闭当前窗口,浏览器页也会退出
- 如果有多个窗口,关闭当前窗口,浏览器不会退出
其实和我们真正用浏览器时一样!可见 Selenium 就是对我们平时操作浏览器行为的封装。
到这里我们就学习了浏览器窗口常用的几种操作,关注CSDN - 兰亭序咖啡,和我一起学习探讨 Selenium 自动化和其它技术。