selenium 操作浏览器

实际上Selenium已经考虑到,浏览器需要调用对应Selenium的API方法完成相应操作,即浏览器已经完成内置了,并不需要通过元素定位。浏览器常见的7种基本操作如下:

1.浏览器前进操作
  • forward():在初始操作时,不存在前进操作,一般与back配合使用。
  • back():后退操作(当前对象必须存在上下文)
2.浏览器的最大化,最小化,全屏
  • get_driver_maximize_window():实现窗口最大化操作
  • get_driver_minimize_window():实现窗口最小化操作
  • get_driver_fullscreen_window():实现窗口全屏操作
3.浏览器close和quite方法的区别

close表示关闭当前对象所处页面(操作页面)的窗口,quite表示关闭所有的页面窗口并关闭驱动器。如果存在一个窗口,其效果是相同的。

4.浏览器的相关属性获取

print(get_driver.current_url):获取当前对象的url地址

print(get_driver.current_window_handle):获取当前对象的句柄。

print(get_driver.title):获取当前对象的标题。

print(get_driver.window_handles):获取当前对象的所有句柄。

5.浏览器句柄操作

驱动器对象.switch_to_window(句柄名):这种方法属于保留方法,不建议使用,后期会删除;句柄名可以通过先获取所有句柄然后定义其索引的方式获取。

**注意:**如果存在多个句柄,建议对每个句柄进行命名操作,便于句柄之间的切换。

6.浏览器中的alert框处理

alert框是无法直接进行元素定位的,需要使用switch_to.alert先切换到alert对象中,然后调用对应的方法执行。accept()方法表示确定;dismiss()方法表示取消。也可以获取其文本内容,调用text属性即可。

7.浏览器的滚动操作

浏览器滚动条无法直接进行定位,所以需要借助JS脚本完成操作。

  1. 指定上下滚动的高度

    js 复制代码
    js="var browser=document.documentElement.scrollTop=100"
    get_driver.execute_script(js)
  2. 实现左右滚动,还可以实现上下滚动。

    python 复制代码
    get_driver.execute_script("window.scrollTo(0,100)")
    #window.scrollTo(x,y) x:横向滚动,y:纵向滚动
    #window.scrollBy(x,y)表示相对当前的坐标点进行再次滚动后的x,y坐标的值。
  3. 不考虑其横向滚动和纵向滚动的坐标值,直接滚动到指定元素位置

    python 复制代码
    arguments[0].scrollIntoView()
    #arguments[0]表示传入的定位元素的对象
WebElement接口的常用方法:
  • clear:清除元素的内容
  • send_keys:在元素上模拟按键输入
  • click:点击元素
  • submit:提交表单
  • size:返回元素的尺寸
  • text:获取元素的文本
  • get_attribute(name):获取属性值
  • is_displayed():设置该元素是否可见
相关推荐
excel1 小时前
Marked 与 Markdown 有什么区别?该怎么选?
前端
Da Da 泓2 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
zxcvb1532 小时前
远程查看本地文档:一条轻量 Web 文件服务的工程化链路
前端·远程查看文档
niucloud-admin3 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
程序员大阳3 小时前
副队长JavaScript教程(50)-DOM:网页开发的起点
javascript·dom·es·节点·概念·document·关系
北岛贰3 小时前
啵啵音乐迎来全新升级!
前端
hkNaruto5 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
IT_陈寒5 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
Acro5 小时前
快给macOS 上的Grok Bot换一套皮肤
前端
flash俊杰5 小时前
双引擎 OCR 编排:逐页判定、视觉优先、partial 语义与三层超时
前端