专栏首页软件测试testclassSelenium控制浏览器常用操作

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 webdriverdriver = 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 webdriverdriver = 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 webdriverdriver = 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 webdriverdriver = 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 webdriverdriver = 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 webdriverdriver = 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 webdriverdriver = 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 webdriverdriver = 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 webdriverdriver = webdriver.Chrome()
driver.get("https://www.testclass.cn")

#获取当前页面的源码
print(driver.page_source)

本文分享自微信公众号 - 软件测试testclass(testclass_cn),作者:Altumn

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Selenium控制浏览器静默模式运行

    日常的UI自动化测试过程中,可以打开无界面的浏览器实现静默模式完成自动化测试。静默模式只需要使用浏览器的内核,不显示界面。

    Altumn
  • Katalon Studio通过识别图片处理浏览器文件下载弹出框

    俗话说的好啊!兄弟!有酒可以一起喝,架,我们可以一起打,但是你给我提IE,对不起我们不认识! 哈哈,从这句话就可以看出IE浏览器的UI自动化的实施是多繁琐了吧?...

    Altumn
  • Selenium定位一组元素

    文末也有关于如何定位一组元素的方法。不过有的小伙伴反映不方便查找,现把该部分内容单独列出。

    Altumn
  • Livy Session 详解(上)

    从Livy Rest Api的介绍中我们可以知道,livy 共有两种 job,分别是 session 和 batch。然而,在源码实现中,session 和 b...

    codingforfun
  • 使用Selenium抓取QQ空间好友说说1.安装Selenium2.在Python中使用Selenium获取QQ空间好友说说3.代码实现(基于Python3)

    通过Robo 3T(数据库MongoDB的一款功能强大的数据库管理工具)可以看到我们已经将拿到的数据库存储于数据库中

    意气相许的许
  • python(leetcode)-14最

    自己的想法是直接暴力法解决,将列表的第一个值作为对比值,通过一层for循环不断遍历对比值与其他元素是否相等,如果相等则继续对比,如果不等return比较过的值。

    用户2398817
  • U-Boot 驱动模型

    DM 是 U-Boot 中的驱动框架,全称 Driver Mode。像 Linux Kernel 中的驱动三要素 device 、bus 、driver 一样,...

    HackforFun
  • Python3 Selenium+Chr

    以前抓取动态网页是用PhantomJS + Selenium + ChromeDriver,但是新版的Selenium不支持PhantomJS了,程序跑的时候总...

    用户2398817
  • AcDisplay:科技,简洁的锁屏通知

    美丽应用
  • selenium切换窗口后定位元素出现问题的解决方案

    在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定。

    流柯

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动