Selenium笔记(二)--Webdriver了解组件、驱动要求、操控浏览器

一、了解组件

  • API:应用程序编程接口。这是一组用来操作WebDriver的“命令”。
  • 库:一个代码模块,它包含api和实现这些api所需的代码。库是对应于具体语言的,如java的.jar文件
  • 驱动程序:负责控制实际的浏览器。大多数驱动程序是由浏览器厂家自己创建的。驱动程序通常与浏览器一起在系统上运行的可执行模块,而不是在执行测试套件的系统上。(尽管他们可能是同一系统。)
  • 框架:用于支持WebDriver套件的附加库。

二、驱动要求,将浏览器(如,chrome)的可执行文件添加到PATH中

     官网下载chrome对应版本的可执行文件chromedriver.exe,将该执行文件放入某个文件夹,将该文件夹添加到PATH中。

  实例化chrome会话,并添加chromedriver可执行文件的路径;

#coding:utf-8
from selenium.webdriver import Chrome
#设置chromedriver可执行文件的路径
driver=Chrome(executable_path="D:\Program Files\WebDriver\\bin\chromedriver")  

三、操控浏览器

  打开导航

driver.get("https://www.baidu.com")

  获取当前url

print(driver.current_url) 

  后退

driver.back()

  前进

driver.forward()

  刷新

driver.refresh()

  获取标题

print(driver.title) #标题

  窗口(id)和标签页

driver.current_window_handle

  切换窗口或标签页

driver.switch_to.window(窗口id])  

   创建新窗口(或)新标签页并且切换

  关闭窗口或标签页

driver.close()

  在会话结束时退出浏览器

当你完成了浏览器会话,你应该调用quit退出,而不是close关闭;

driver.quit()

 退出将会

  • 关闭所有与WebDriver会话相关的窗口和选项卡
  • 结束浏览器进程
  • 结束后台驱动进程
  • 通知Selenium Grid浏览器不再使用,以便可以由另一个会话使用它(如果您正在使用Selenium Grid)

调用quit()失败将留下额外的后台进程和端口运行在机器上,这可能在以后导致一些问题。

 有的测试框架提供了一些方法和注释,您可以在测试结束时放入teardown()方法中。

注意:下面使用的是pytest的teardown(),pytest学习链接

#coding:utf-8
from selenium import webdriver
driver=webdriver.Chrome()
def test_1():
    driver.get("https://www.baidu.com")
def teardown():
    driver.quit() 

    您可以考虑使用try  finally,这样大多数语言都提供的,这样一个异常处理仍然可以清理WebDriver会话

#coding:utf-8
from selenium import webdriver
driver=webdriver.Chrome()
try:
    driver.get("https://www.baidu.com")
finally:
    driver.quit()

 python的webdriver现在支持Python上下文管理器,当使用with关键字时,可以在执行结束时自动退出驱动程序。

#coding:utf-8
from selenium import webdriver
with webdriver.Chrome() as driver:
    driver.get("https://www.baidu.com")

 Frames and Iframes

 使用WebElement

 使用name或id

 使用索引

离开框架

窗口管理

获取窗口大小

获取浏览器窗口的大小(以像素为单位)

#coding:utf-8
from selenium import webdriver
with webdriver.Chrome() as driver:
    driver.get("https://www.baidu.com")
    w=driver.get_window_size().get("width")
    h=driver.get_window_size().get("height")
    print(w,h)  

 设置窗口大小

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.set_window_size(1920,1080)  

 得到窗口的位置

 获取浏览器窗口左上角的坐标

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
x=driver.get_window_position().get('x')
y=driver.get_window_position().get('y')
print(x,y)  

 设置窗口位置

  将窗口移动到设定的位置

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.set_window_position(0,0)

 最大化窗口

 扩大窗口。对于大多数操作系统,窗口将填满屏幕,而不会阻挡操作系统自己的菜单和工具栏。

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()

 最小化窗口

最小化当前浏览上下文的窗口。这种命令的精准行为将作用于各个特定的窗口管理器。

最小化窗口通常将窗口隐藏在系统托盘中。

driver.minimize_window()

 全屏窗口

填充整个屏幕,类似于在大多数浏览器中按下F11

driver.fullscreen_window()

 屏幕截图

用于捕获当前浏览上下文的屏幕截图。WebDriver端点屏幕截图返回以Base64格式编码的屏幕截图

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.save_screenshot("E:\\0825.png")

 元素屏幕截图

用于捕获当前浏览上下文的元素的屏幕截图。WebDriver端点 屏幕截图 返回以Base64格式编码的屏幕截图。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值