前言

  • 版本:

    • python:3.9
    • selenium:4.1.5
  • 浏览器:firefox

创建浏览器对象

from selenium import webdriver

driver = webdriver.Firefox(executable_path=r"C:\software\selenium\geckodriver.exe")

打开网页

# 打开在线网页
driver.get("https://www.baidu.com")
# 打开离线网页
driver.get('file:///C:/File/index.html')

退出浏览器

# 关闭当前由selenium打开的浏览器窗口
driver.close()
# 关闭所有由selenium打开的浏览器窗口
driver.quit()

设置窗口大小

# 窗口最大化
driver.maximize_window() # 网页全屏
driver.fullscreen_window() # 指定大小
driver.set_window_size(500,400)

设置窗口位置

# 指定横纵坐标
driver.set_window_position(x=500,y=400)
# 同时指定坐标和大小
driver.set_window_rect(x=30,y=30,width=450,height=450)

获取窗口位置和大小

# 获取窗口位置
window_pos = driver.get_window_position()
# 获取窗口大小
window_size = driver.get_window_size()

浏览器导航

  • 返回到前一个页面
driver.back()
  • 前进到下一个页面(如果没有返回,就没有前进)
driver.forward()
  • 刷新
driver.refresh()

鼠标操作

  • 假设惯用手是右手,单击指左键单击
# 左键单击
elem = driver.find_element(...).click() # 左键单击并按住
button = driver.find_element(...)
webdriver.ActionChains(driver).click_and_hold(button).perform() # 右键单击
webdriver.ActionChains(driver).context_click(button).perform() # 左键双击
webdriver.ActionChains(driver).double_click(on_element=button).perform() # 移动光标但不点击
from selenium.webdriver.common.action_chains import ActionChains
ActionChains(driver).move_to_element(button).perform() # 拖拽
src_elem = find_element(...)
des_elem = find_element(...)
ActionChains(driver).drag_and_drop(src_elem,des_elem).perform() # 松开点击。点按 -> 拖拽 -> 松开
ActionChains(driver)\
.click_and_hold(src_elem)\
.move_to_element(des_elem)\
.perform()\
.release()\
.perform()

键盘操作

# 上、下、输入
from selenium.webdriver.common.keys import Keys
ActionChains(driver)\
.key_down(Keys.CONTROL)\
.send_keys("qwer")\
.key_up(Keys.CONTROL)\
.key_down(Keys.CONTROL)\
.send_keys("asdf")\
.key_up(Keys.CONTROL)\
.perform()

[selenium]浏览器基本操作的更多相关文章

  1. Selenium浏览器自动化测试工具

    目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...

  2. 跟浩哥学自动化测试Selenium -- 浏览器的基本操作与元素定位(3)

    浏览器的基本操作与元素定位 通过上一章学习,我们已经学会了如何设置驱动路径,如何创建浏览器对象,如何打开一个网站,接下来我们要进行一些复杂的操作比如先打开百度首页,在打开博客园,网页后退,前进等等,甚 ...

  3. selenium自动化测试-浏览器基本操作

    webdriver 通过协议和接口发现DOM中的元素,并实现控制浏览器的行为,例如打开浏览器.控制浏览器大小. 浏览器刷新及浏览器前进.后退等,接下来介绍浏览器的一些基本操作. 1.启动浏览器 dri ...

  4. selenium浏览器自动化测试框架文档(修正版)

    写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还 ...

  5. python+selenium浏览器调用(chrome、ie、firefox)

    代码: #coding=utf-8 from selenium import webdriver driver=webdriver.Chrome() #调用chrome浏览器 driver.get(' ...

  6. 自动化测试基础篇--Selenium浏览器操作

    摘自https://www.cnblogs.com/sanzangTst/p/7462056.html  学习 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法 ...

  7. 手写一个selenium浏览器池

    维护一组浏览器,实现每分钟1000次查询.DriverPool使用变幻版只初始化一次的单例模式.维护每个浏览器的当前是否使用的状态. 不需要等待请求来了,临时开浏览器,开一个浏览器会耽误6秒钟. 可以 ...

  8. Java Selenium - 浏览器操作

    浏览器主要操作方法来自接口 org.openqa.selenium.WebDriver , 实现于org.openqa.selenium.remote.RemoteWebDriver这个类,然后不同浏 ...

  9. selenium 浏览器常用设置和部署

    一,chrome浏览器设置 from selenium import webdriver # 浏览器选项 chrome_options = webdriver.ChromeOptions() # 使用 ...

  10. selenium浏览器驱动下载地址整理

    今天把手头有的一些关于selenium测试的资源整理了一下,分享出来. 1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是 ...

随机推荐

  1. 2020-11-19:go中,defer原理是什么?

    福哥答案2020-11-19:- - 什么是defer - defer是go语言提供的一种用于注册延迟调用的机制:让函数或者语句在当前函数执行完毕(包括return正常结束或者panic导致的异常结束 ...

  2. 2021-04-25:给定一个数组arr,和一个正数M,返回在arr的子数组在长度不超过M的情况下,求最大的累加和。

    福大大 答案2021-04-25: 前缀和+左大右小的双端队列.时间太晚了,所以写得简单. 代码用golang编写.代码如下: package main import ( "containe ...

  3. 2022-02-09:k8s安装redis,yaml如何写?

    2022-02-09:k8s安装redis,yaml如何写? 答案2022-02-29: apiVersion: apps/v1 kind: Deployment metadata: labels: ...

  4. 2021-09-19:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。

    2021-09-19:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合. 福大大 答案2021-09-19: 递归. 参数1:左括号-右括号的数量. 参数2:左 ...

  5. vue全家桶进阶之路10:修饰符

    Vue2 中的修饰符是指在指令后面添加点号(.)和修饰符名称的方式,用于控制指令的行为.修饰符可以分为事件修饰符和属性修饰符两种类型,下面分别介绍它们的作用和使用方法. 事件修饰符 事件修饰符用于控制 ...

  6. APRIL 2022-Explanation-Aware Experience Replay in Rule-Dense Environments

    I. INTRODUCTION 解释是人类智能的关键机制,这种机制有可能提高RL代理在复杂环境中的表现 实现这一目标的一个核心设计挑战是将解释集成到计算表示中.即使在最小的规则集变化下,将规则集(或部 ...

  7. [vuex] unknown action type:***

    vuex 分模块后使用mapActions调用action老是提示 [vuex] unknown action type:*** 异常 目录 index.js是这样的 import Vue from ...

  8. GPT大模型下,如何实现网络自主防御

    GPT大模型下,如何实现网络自主防御 本期解读专家  李智华 华为安全AI算法专家    近年来,随着GPT大模型的出现,安全领域的攻防对抗变得更加激烈.RSAC2023人工智能安全议题重点探讨了人工 ...

  9. OSPF路由控制

    实验拓扑 实验需求 公司A使用OSPF路由协议实现公司设备全网互通,后来公司A扩张兼并了公司B,要求将公司B采用的IS-IS路由协议与公司A的OSPF协议互相引入,使得相应部门可以实现互通. Rout ...

  10. Linux网络编程(学习笔记)

    文中python代码来自老师的教学代码,感谢我的老师~~ 1. linux网络数据处理过程: 网卡->协议栈->网络 1)应用层输出数据 socket层->协议层->接口层 2 ...