Web 浏览器控制
同学们,大家好!这一章节我们将学习如何通过自动化脚本来控制 Web 浏览器。在手工测试中,我们经常会使用前进、后退、刷新等浏览器操作,而在自动化测试中,这些功能同样可以通过代码实现,让测试更加便捷和高效。接下来就让我们来一起学习吧。
简介
在 Web 自动化测试中,经常需要模拟用户在浏览器中的操作来完成一些测试任务,通过编程方式操作和控制浏览器的行为,以便自动化执行各种操作。
首先,我们来了解一下什么是浏览器控制。简单来说,浏览器控制就是通过代码模拟用户在浏览器中执行各种操作,比如前进、后退、刷新页面等,帮助我们在自动化测试中高效地完成这些常见的交互任务。
浏览器控制常见操作
方法 | 操作 | 使用场景 |
---|---|---|
get() | 打开浏览器 | web 自动化测试第一步 |
refresh() | 浏览器刷新 | 模拟浏览器刷新 |
back() | 浏览器退回 | 模拟退回步骤 |
maximize_window() | 最大化浏览器 | 模拟浏览器最大化 |
minimize_window() | 最小化浏览器 | 模拟浏览器最小化 |
在 Web 自动化测试中,浏览器控制是非常基础的操作之一。通过使用如 get() 打开浏览器、refresh() 刷新页面、back() 退回到上一页、maximize_window() 最大化浏览器,以及 minimize_window() 最小化浏览器这些方法,可以精准地模拟用户在实际使用过程中对浏览器的基本操作,从而更真实地验证功能的正确性和用户体验。
打开网页
get() 方法打开浏览器
我们先来看看第一个方法,打开网页的方法,可以通过get方法来实现。
python 示例
# 导入Selenium的webdriver模块
from selenium import webdriver
def window_start():
# 创建Chrome浏览器的选项对象
options = webdriver.ChromeOptions()
# 初始化Chrome浏览器驱动
driver = webdriver.Chrome(options=options)
# 打开网页
driver.get('https://www.ceshiren.com')
# 关闭浏览器
driver.quit()
if __name__ == '__main__':
window_start()
首先,我们需要初始化一个 driver 对象,然后调用 get 方法,在括号中输入目标网站的 URL,比如测试人社区的网址。运行代码后,浏览器会自动打开并访问测试人社区。完成操作后,浏览器会关闭,整个过程简单高效,非常适合模拟用户访问网页的行为。页面上展示的是Python语言的实现方法,当然我们也可以用Java语言来完成。
java 示例
//导入Selenium的webdriver模块
import org.openqa.selenium.WebDriver;
//导入Selenium里的谷歌浏览器驱动模块
import org.openqa.selenium.chrome.ChromeDriver;
public class demo {
public static void main(String[] args) {
WebDriver driver =new ChromeDriver();
//打开页面
driver.get("https://ceshiren.com");
//关闭浏览器进程
driver.quit();
}
}
如图是Java语言的实现方式,可以看到逻辑是相同的,只是实现语言不通。
刷新页面
refresh() 方法刷新页面。
第二个方法是刷新页面的方法,通过refresh方法来实现。
python 示例
# 导入Selenium的webdriver模块
import time
from selenium import webdriver
def window_refresh():
# 创建Chrome浏览器的选项对象
options = webdriver.ChromeOptions()
# 初始化Chrome浏览器驱动
driver = webdriver.Chrome(options=options)
# 打开网页
driver.get('https://www.ceshiren.com')
# 等待1秒
time.sleep(1)
# 刷新页面
driver.refresh()
time.sleep(1)
# 关闭浏览器
driver.quit()
if __name__ == '__main__':
window_refresh()
那我们来看看刷新网页方法如何使用,首先也是先 使用 Selenium 的 webdriver 初始化一个 Chrome 浏览器实例。随后,通过 get 方法打开测试人社区的网站。在页面加载后,我们设置了一个短暂的等待时间,然后调用 refresh 方法刷新页面。最后,通过 quit 方法关闭浏览器窗口。
java 示例
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class demo {
public static void main(String[] args) {
WebDriver driver =new ChromeDriver();
driver.get("https://ceshiren.com");
//使用refresh方法刷新页面
driver.navigate().refresh();
//关闭浏览器进程
driver.quit();
}
}
我们再来看下Java版本的实现方式。
回退
用 back() 方法回退到上一个界面
接下来我们来看第三个方法——回退,也就是返回到上一个页面。在自动化测试中,使用 Selenium 提供的 back 方法就可以实现这个功能。通过先打开一个网页,然后导航到另一个页面,再调用 back 方法,浏览器就会返回到之前访问的页面。
python 示例
# 导入Selenium的webdriver模块
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
def window_back():
# 创建Chrome浏览器的选项对象
options = webdriver.ChromeOptions()
# 初始化Chrome浏览器驱动
driver = webdriver.Chrome(options=options)
# 打开网页
driver.get('https://www.ceshiren.com')
driver.find_element(By.XPATH,"//*[text()='类别']").click()
time.sleep(1)
driver.back()
time.sleep(1)
# 关闭浏览器
driver.quit()
if __name__ == '__main__':
window_back()
Python 版本的代码如下,通过 Selenium 操控浏览器完成回退操作:首先初始化 Chrome 浏览器驱动,并打开测试人社区首页;接着点击‘类别’链接,模拟用户跳转到一个新的页面;然后使用 back 方法返回到前一个页面;最后,关闭浏览器完成操作。
java 示例
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class demo {
//因为使用了Thread.sleep()等待,所以需要抛出异常
public static void main(String[] args) throws InterruptedException {
WebDriver driver =new ChromeDriver();
//打开第一个页面
driver.get("https://ceshiren.com");
//打开第二个页面
driver.get("https://ceshiren.com/c/ask/150");
//等待两秒
Thread.sleep(2000);
//回退到第一个页面
driver.navigate().back();
//关闭浏览器进程
driver.quit();
}
}
然后是Java实现。
最大化
maximize_window() 方法使窗口最大化
接下来是第四个方法——最大化窗口。也就是浏览器窗口最大化。
python 示例
import time
from selenium import webdriver
def max_window():
# 创建Chrome浏览器的选项对象
options = webdriver.ChromeOptions()
# 初始化Chrome浏览器驱动
driver = webdriver.Chrome(options=options)
# 打开网页
driver.get('https://www.ceshiren.com')
# 窗口最大化
driver.maximize_window()
time.sleep(3)
# 关闭浏览器
driver.quit()
if __name__ == '__main__':
max_window()
首先我们来看Python实现,这一方法非常简单,只需要在初始化WebDriver的时候调用 maximize_window() 方法即可。
java 示例
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class demo {
public static void main(String[] args) throws InterruptedException {
WebDriver driver =new ChromeDriver();
driver.get("https://ceshiren.com");
//最大化页面
driver.manage().window().maximize();
Thread.sleep(2000);
//关闭浏览器进程
driver.quit();
}
}
Java版本也是同理,是不是非常简单且实用。
最小化
minimize_window() 方法使窗口最小化
接下来我们再来看第五个方法——最小化窗口。也就是浏览器窗口最小化,它和上一个方法最大化类似。
python 示例
import time
from selenium import webdriver
def min_window():
# 创建Chrome浏览器的选项对象
options = webdriver.ChromeOptions()
# 初始化Chrome浏览器驱动
driver = webdriver.Chrome(options=options)
# 打开网页
driver.get('https://www.ceshiren.com')
# 窗口最小化
driver.minimize_window()
time.sleep(2)
# 窗口最大化
driver.maximize_window()
time.sleep(3)
# 关闭浏览器
driver.quit()
if __name__ == '__main__':
min_window()
窗口最小化的方法和最大化类似,只需调用 minimize_window() 即可。在执行测试用例时,我们可以直观地看到页面的操作流程:先打开测试人社区网站,然后窗口被最小化,接着再最大化,最后关闭浏览器。这样的操作能够帮助我们模拟用户实际的浏览器交互场景。
java 示例
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class demo {
public static void main(String[] args) throws InterruptedException {
WebDriver driver =new ChromeDriver();
driver.get("https://ceshiren.com");
//最小化页面
driver.manage().window().minimize();
Thread.sleep(2000);
//关闭浏览器进程
driver.quit();
}
}
Java版本实现如下。
设置浏览器宽和高
set_window_size(宽, 高):设置浏览器的宽和高。
最后,我们来看一个更灵活的方法:设置浏览器的宽和高。与最大化和最小化不同,直接调整窗口尺寸可以更好地适应不同测试场景需求,还能避免窗口最大化后可能出现的位置偏移问题。这种方式在跨分辨率测试中尤为实用。
python 示例
import time
from selenium import webdriver
def set_window_size():
# 创建Chrome浏览器的选项对象,并最大化窗口
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
# 初始化Chrome浏览器驱动
driver = webdriver.Chrome(options=options)
# 打开网页
driver.get('https://www.ceshiren.com')
driver.set_window_size(500,500)
time.sleep(2)
# 关闭浏览器
driver.quit()
if __name__ == '__main__':
set_window_size()
以下是 Python 版本的代码,通过 Selenium 设置浏览器窗口大小:我们首先初始化 Chrome 浏览器驱动并将其最大化,随后通过 set_window_size 方法将浏览器窗口调整为宽 500 像素、高 500 像素的尺寸。运行代码后,浏览器窗口会显示为指定大小,最终关闭浏览器完成操作。
java 示例
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class demo {
public static void main(String[] args) throws InterruptedException {
WebDriver driver =new ChromeDriver();
driver.get("https://ceshiren.com");
//设置页面大小为800 x 600 像素
driver.manage().window().setSize(new Dimension(800, 600));
Thread.sleep(2000);
//关闭浏览器进程
driver.quit();
}
}
Java 版本的代码如下。
总结
- get():打开浏览器。
- refresh():刷新浏览器。
- back():回退到上一个页面。
- maximize_window():浏览器窗口最大化。
- minimize_window():浏览器窗口最小化。
- set_window_size(宽, 高):设置浏览器的宽和高。
以上就是本章节的全部内容,我们总结了浏览器控制的常用方法,包括打开网页、刷新页面、回退、前进、最大化、最小化,以及设置窗口大小等操作。这些方法是 Web 自动化测试的基础,通过熟练掌握它们,可以更加灵活、高效地应对各种测试场景。希望大家多加练习,逐步提升自己的自动化测试技能!