更多内容请关注我的专栏:
当用 Selenium 打开浏览器后,我们就可以通过 Selenium 对浏览器做各种操作,就像我们日常用鼠标和键盘操作浏览器一样,比如:
- 打开新窗口
- 切换到其它窗口
- 关闭窗口
- 关闭浏览器
- ......
 今天我们就来学习这些操作。
1. 打开网页
通过 get() 函数, 我们就可以使用浏览器打开指定的网页。
            
            
              java
              
              
            
          
          driver.get("https://www.w3cschool.cn/html/html-form.html");2. 后退 / 前进
平时使用浏览器时,我们通常会点击浏览器左上角的 [前进] / [后退] 图标,返回到前一个或下一个网页。

Selenium 也提供了这样的方法 back() 和 forward()
            
            
              java
              
              
            
          
          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) 是最常用的打开网页的方式,但是还有另一种方式:
            
            
              java
              
              
            
          
          driver.navigate().to("https://www.w3cschool.cn/html/html-form.html");这种方式效果和 get() 没有太大的区别,但是它有一个好处,就是 to() 返回的是 Navigation 对象,是的,上面的 back() 和 forward() 方法都是这个对象的方法,这是一种链式调用!
            
            
              java
              
              
            
          
          WebDriver.Navigation navigation = driver.navigate();
navigation.to("https://www.w3cschool.cn/html/html-form.html");
navigation.back();
navigation.forward();4. 获取基本信息
打开一个网页,我们通常可以看到两样东西,网页标题和网页地址,还可以查看网页的源码,用 Selenium 同样很简单做到。
            
            
              java
              
              
            
          
          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" 图标一样。

            
            
              java
              
              
            
          
          driver.close();6. 关闭浏览器
我们测试完后,需要关闭浏览器,这样可以释放资源。
            
            
              java
              
              
            
          
          driver.close();那么问题来了 quit() 和 close() 有什么区别呢?
- 如果只有一个窗口,关闭当前窗口,浏览器页也会退出
- 如果有多个窗口,关闭当前窗口,浏览器不会退出
其实和我们真正用浏览器时一样!可见 Selenium 就是对我们平时操作浏览器行为的封装。
到这里我们就学习了浏览器窗口常用的几种操作,关注CSDN - 兰亭序咖啡,和我一起学习探讨 Selenium 自动化和其它技术。