selenium—元素、浏览器、元素信息操作常用API
目录
一、常用元素操作
二、浏览器常用API
三、元素信息操作方法
# 导包
from selenium import webdriver
一、常用元素操作
- .send_keys() # 输入
- .click() # 点击
- .clear() #清空
语法: 对象.方法()
示例:
"""@name 九三@time 2023-4-6
"""
# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 启动浏览器
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window() # 窗口最大化# 定位到元素(输入框)
srk = driver.find_element(By.ID,'kw')
# 输入 “selenium定位”
srk.send_keys('selenium定位')
time.sleep(2) # 等待2秒,查看键入效果
# 定位到元素(百度一下)
bdyx = driver.find_element(By.ID,'su')
# 点击操作
bdyx.click()
time.sleep(3) # 等待2秒,查看搜索结果
# 清空输入框
srk.clear()
time.sleep(3) # 等待2秒,查看搜索结果driver.quit() # 关闭驱动
二、浏览器常用API
- driver.maximize_window() # 最大化浏览器
- driver.set_window_size(w,h) # 设置窗口大小
- driver.set_window_position(x,y) # 设置窗口位置
- driver.back() # 前进
- driver.forward() # 后退
- driver.refresh() # 刷新页面
- driver.close() # 关闭当前主窗口
- driver.quit() # 关闭驱动
- driver.title # 获取当前页面的title
- driver.current_url # 获取当前页面的URL
说明:driver为浏览器对象,见代码段 driver = webdriver.Chrome()
根据个人习惯定义,一般定义为:driver
示例:
"""@name 九三@time 2023-4-6
"""
# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 启动浏览器
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.set_window_size(100,500) # 设置窗口大小
driver.set_window_position(500,500) # 设置窗口位置
driver.maximize_window() # 窗口最大化title = driver.title # 获取当前页面title
url = driver.current_url # 获取当前页面url
# 打印 title 和 url
print(title,':',url)# 定位到元素(输入框)
srk = driver.find_element(By.ID,'kw')
# 输入 “selenium定位”
srk.send_keys('selenium定位')
time.sleep(2) # 等待2秒,查看键入效果
# 定位到元素(百度一下)
bdyx = driver.find_element(By.ID,'su')
# 点击操作
bdyx.click()
time.sleep(2) # 等待2秒,查看搜索结果
# 后退 (返回百度首页)
driver.back()
time.sleep(2) # 等待2秒,查看效果
# 前进 (回到搜索结果页)
driver.forward()
time.sleep(2) # 等待2秒,查看效果
driver.refresh() # 刷新页面# 当前页面只有一个窗口时,效果与{driver.quit() # 关闭驱动}相同
driver.close() # 关闭主窗口
运行结果
三、元素信息操作方法
- .text # 获取元素文本
- .size # 获取元素大小
- .get_attribute # 获取元素属性
- .is_displayed # 判断元素是否可见
- .is_enabked # 判断元素是否可用
- .is_selected # 判断元素是否被选中
示例:
"""@name 九三@time 2023-4-6
"""
# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 启动浏览器
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window() # 窗口最大化# 定位到元素(输入框)
srk = driver.find_element(By.ID,'kw')# 获取元素大小并输出
print('输入框大小为:', srk.size)
time.sleep(2) # 等待2秒,查看键入效果# 定位到元素(更多),并输入文本内容
wb = driver.find_element(By.XPATH,'''//*[@id="s-top-left"]//a[text()='更多']''').text
print('元素文本为:',wb)
# 定位到元素(百度一下)
bdyx = driver.find_element(By.ID,'su')# 判断按钮”百度一下是否可见“,预期结果为True
sf = bdyx.is_displayed()
print('是否可见?:', sf)# 获取按钮type属性值
print('按钮type属性值:',bdyx.get_attribute("type"))driver.quit() # 关闭驱动
结果:
新手小白入村,仅供参考!!!
如有错误烦请大佬评论区留言!!!
间歇性更新,若有一天停更了,大抵是从入门学到放弃了!!!
——九三
selenium—元素、浏览器、元素信息操作常用API相关推荐
- selenium实现浏览器的自动操作
有的网站页面交互复杂,所使用的技术难以被爬取,比如,腾讯文档. 还有的网站,对URL的加密逻辑很复杂. 想要攻破这些网站的反爬虫技术会有一些难度. 不过selenium,通过它,可以解决以上所有问题. ...
- python 爬虫 使用selenium 控制浏览器 进行搜索操作
首先需要安装selenium: 第一种:可以自己下载selenium tar.gz包,下载到python目录下:解压到当前文件夹 在cmd命令行:进入到解压包中,进行安装.安装完成之后,如果是ecli ...
- stream操作常用API 示例详解
简介 从JDK8开始,增加了一新特性Stream流式操作,Stream中提供了非常多的API供大家使用,灵活的使用这些API,可以非常的方便且优美的实现我们的代码逻辑. 流式操作主要用来处理数据(比如 ...
- Linux内核 设备树操作常用API【转】
转自:https://www.linuxidc.com/Linux/2017-02/140818.htm 一文中介绍了设备树的语法,这里主要介绍内核中提供的操作设备树的API,这些API通常都在&qu ...
- Python利用Selenium模拟浏览器自动操作
概述 在进行网站爬取数据的时候,会发现很多网站都进行了反爬虫的处理,如JS加密,Ajax加密,反Debug等方法,通过请求获取数据和页面展示的内容完全不同,这时候就用到Selenium技术,来模拟浏览 ...
- c++浏览器自动化操作_精:C# 利用Selenium实现浏览器自动化操作
概述 Selenium是一款免费的分布式的自动化测试工具,支持多种开发语言,无论是C. java.ruby.python.或是C# ,你都可以通过selenium完成自动化测试.本文以一个简单的小例子 ...
- selenium之浏览器、元素、鼠标等操作总结
1 控制浏览器 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览器的大小以及浏览器后退.前进按钮等. 1.1 控制浏览器窗口大小 在不同的浏览 ...
- 软件测试 自动化测试 Web自动化测试01 selenium 定位元素方法 元素操作 自动化脚本开发
文章目录 1 自动化测试概述 1.1 测试的目的 1.2 自动化测试的优点 1.3 自动化测试的缺点 1.4 自动化测试工具 1.5 自动化测试流程 2 selenium基础 2.1 selenium ...
- Selenium之定位元素常用的8种方法整理(第一篇)
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...
最新文章
- 【转载】关于c++中的explicit
- struct 与class 的区别?
- dataset存入mysql_将dataset写入数据库
- 使用django创建一个单表查询的图书管理系统
- Dubbo的RPC原理
- java开源服务框架_Java框架服务
- 一日之计在于晨,早起挑战万元大奖!
- 机器学习速成课程 | 练习 | Google Development——编程练习:创建和操控张量
- python runner.daemonrunner_在python中将参数传递给daemon runner
- java 点到点最短路径,迪杰斯特拉算法处理无向图中最短路径的(dijkstra)Java实现(指定两点,求最短距离及路径) | 学步园...
- Spring boot傻瓜教程(一):官方加强版,避开坑
- 远程服务异常处理的实践之一:客户端
- 2020-09-08 Win7-Win10内部版本号
- 电脑有两个显示器用来显示,如何配置呢,请看下文
- 需求不容易确定的项目不要接
- linux 安装Gauss09 GaussView
- java 遍历json串_Java遍历Json数据
- 使用GitHub Actions通过CI提高代码质量
- 写一封信给N年前的自己
- 利用FireFox远程调试安卓手机web网页应用