Selenium控制浏览器常用操作
写在前面
Selenium在做web测试的时候直接操作浏览器运行,这篇文章将介绍Selenium控制浏览器常用操作。
驱动多个浏览器在日常的自动化测试中,有时需要驱动多个浏览器页面。例如以下业务:获取手机短信验证码。如果我们只在前端操作获取验证码,就可以在业务系统前端点击获取验证码,然后到短信平台查询验证码再输入验证码。当然也可以直接操作数据库查询验证码,这样就不用操作多个浏览器。
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver #驱动第一个浏览器,进入www.testclass.cn主页; driver_first = webdriver.Chrome() driver_first.get("https://www.testclass.cn") print(driver_first.title) #驱动第二个浏览器,进入www.baidu.com主页; driver_second = webdriver.Chrome() driver_second.get("https://www.baidu.com/") print(driver_second.title) #关掉第一个浏览器; driver_first.quit() #关掉第二个浏览器; driver_second.quit()
控制浏览器窗口大小有时我们需要对移动站点的样式进行评估,可是浏览器的正常尺寸是不合适的,这时候我们将浏览器设置成移动端大小即可。
例如可以将浏览器设置成移动端大小(520*520):WebDriver提供了set_window_size()
方法来设置浏览器的大小。
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #参数为数字,表示浏览器窗口像素的大小; driver.set_window_size(520, 520) driver.quit()
获取当前浏览器窗口大小WebDriver提供了方法可以直接获取浏览器当前窗口的大小;
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #获取当前浏览器窗口大小; print(driver.get_window_size()) #设置浏览器窗口大小(520, 520); driver.set_window_size(520, 520) #获取当前浏览器窗口大小; print(driver.get_window_size()) driver.quit()
设置/获取当前浏览器的坐标WebDriver提供了方法可以直接获取浏览器当前窗口的坐标位置,同时可以设置浏览器窗口的坐标位置;
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #获取当前浏览器的坐标位置; print(driver.get_window_position()) #设置浏览器窗口的坐标;x=30,y=30 driver.set_window_position(30,30) driver.quit()
同时获取浏览器窗口的位置和大小WebDriver可以同时获取浏览器窗口的位置和大小;
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #同时获取浏览的位置和窗口大小 print(driver.get_window_rect()) driver.quit()
同时设置浏览器窗口的位置和大小WebDriver可以同时设置浏览器窗口的位置和大小;
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #同时设置浏览的位置和窗口大小 driver.set_window_rect(40,80,400,800) driver.quit()
控制浏览器窗口最大化有时打开的浏览器默认不是最大化显示,这时候我们就需要主动把浏览器调成最大化显示。
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver #驱动浏览器,进入www.testclass.cn主页; driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #浏览器窗口最大显示; driver.maximize_window() driver.quit()
控制浏览器全屏显示WebDriver提供了方法可以使浏览器全屏显示(效果等同谷歌浏览器按F11)。
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #设置浏览器全屏显示,谷歌浏览器(F11)可以进入全屏和退出全屏; driver.fullscreen_window() driver.quit()
控制浏览器前进/后退
WebDriver提供了对应的back()
和forward()
方法来实现浏览器网页的后退和前进,方便地在浏览过的网页之间切换,下面通过例子来演示这两个方法的使用。
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() #访问www.testclass.cn首页 first_url= 'https://www.testclass.cn/' driver.get(first_url) #访问自动化测试页面 second_url='https://www.testclass.cn/category/automation_test' driver.get(second_url) #后退到www.testclass.cn首页 print("back to %s "%(first_url)) driver.back() #前进到自动化测试页面 print("forward to %s"%(second_url)) driver.forward() driver.quit()
刷新浏览器页面
WebDriver提供了方法refresh()
来代替手动刷新(F5)页面。如下:
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver #驱动浏览器,进入www.testclass.cn主页; driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #浏览器窗口最大显示; driver.maximize_window() #界面刷新 driver.refresh() driver.quit()
一次性驱动任意个浏览器
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver #先后驱动1000个浏览器,慎用! for i in range(1000): driver=webdriver.Chrome() driver.get("https://www.testclass.cn/") print(driver.title)
获取当前页面的URl
有时候需要通过获取url来判断当前页面跳转是否正确。WebDriver提供了方法driver.current_url
获取当前页面的url。如下:
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #获取当前页面的URL print(driver.current_url) #获取当前页面的标题 print(driver.title)
获取当前页面的源码
#coding=utf-8 #www.testclass.cn #Altumn from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.testclass.cn") #获取当前页面的源码 print(driver.page_source)
作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可
文章评论(2)
自动化测试学习交流群:670250199
很详细。厉害啦~