selenium threading运行后退出_Selenium的使用
Selenium是一个自动化测试工具,利用它可以模仿人类行为,如点击、下滑、移动鼠标等,同时还能获取网页源码
相关链接:https://www.selenium.dev/
目录
1、准备工作
2、基本示范
3、功能介绍
4、信息获取
5、切换页面
1、准备工作
首先要确保安装好selenium库和对应浏览器的驱动,若没有安装可以参考前面的文章——爬虫开发环境部署
2、基本示范
这里用的是Chrome浏览器
from selenium import webdriverbrowser = webdriver.Chrome()
browser.get('https://www.baidu.com')
browser.quit() # 退出
运行代码后会弹出一个百度的页面
如果你用的发其他浏览器,比如Firefox就可以这样写
browser = webdriver.Firefox()
3、功能介绍
- 3.1、请求网站
用get()方法请求网站,传入一个url即可,同时我们可以调用page_source获取源码
from selenium import webdriverbrowser = webdriver.Chrome()
browser.get('https://www.baidu.com')
print(browser.page_source) # 获取网页源码
browser.quit() # 退出
- 3.2、单个节点查找
我们查找一下百度的输入框
我们可以看到这个input标签内有哪些内容class、id、name,我们可以通过这些来定位这个位置,当然也可以根据css、xpath来查找
from selenium import webdriverbrowser = webdriver.Chrome()
browser.get('https://www.baidu.com')
a = browser.find_element_by_class_name('s_ipt')
b = browser.find_element_by_id('kw')
c = browser.find_element_by_xpath('//input[@class="s_ipt"]')
browser.quit() # 退出
print(a)
print(b)
print(c)输出结果:
<selenium.webdriver.remote.webelement.WebElement (session="3a9746646e68a7e5ddb24304cbd6c705", element="fa252264-5131-42a3-ac27-b393d51867c1")>
<selenium.webdriver.remote.webelement.WebElement (session="3a9746646e68a7e5ddb24304cbd6c705", element="fa252264-5131-42a3-ac27-b393d51867c1")>
<selenium.webdriver.remote.webelement.WebElement (session="3a9746646e68a7e5ddb24304cbd6c705", element="fa252264-5131-42a3-ac27-b393d51867c1")>
我们可以发现都是一样的
find_element_by_class_name()是根据class属性查找find_element_by_id()就是根据id来查找
这里列出所有定位单个节点的方法,大家可以根据自己的习惯来选择
- 3.3、节点交互
这里介绍几个常用的功能:点击、输入文本、清空文本
点击用click(),输入文本用send_keys(),清楚文本用clear()
示例:
这里用百度搜索爬虫
首先是要找到输入框所在的HTML位置
我们可以轻松的找到它,在class为s_ipt的input标签下
输入文本
browser.find_element_by_class_name('s_ipt').send_keys('爬虫')
清空文本
中间加个sleep,可以清楚看到全过程
browser.find_element_by_class_name('s_ipt').send_keys('爬虫')
time.sleep(1)
browser.find_element_by_class_name('s_ipt').clear()
最后点击百度一下
browser.find_element_by_id('su').click()
4、信息获取
- 4.1、属性获取
既然可以定位节点那也可以获取节点的属性,可以调用get_attribute()
用上一个案例中的百度一下的按钮吧
from selenium import webdriverbrowser = webdriver.Chrome()
browser.get('https://www.baidu.com')
a = browser.find_element_by_id('su')
print(a.get_attribute('class'))
browser.quit() # 退出运行结果:
bg s_btn
对比一下,一模一样
- 4.2、获取文本
文本在class=“title”的span标签内
from selenium import webdriverbrowser = webdriver.Chrome()
browser.get('https://www.baidu.com')
a = browser.find_element_by_class_name('title')
print(a.text)
browser.quit() # 退出运行结果:
下载百度APP
咦,怎么回事呢?
在网页源码中class=“title”的标签不唯一,但是它只会返回第一个符合条件的。那现在怎么办呢?用xpath定位,右键点击标签可以直接copy XPath规则
from selenium import webdriverbrowser = webdriver.Chrome()
browser.get('https://www.baidu.com')
a = browser.find_element_by_xpath('//*[@id="s_icons"]/a[2]/span[2]')
print(a.text)
browser.quit() # 退出
但是直接报错了,原来是我打开的百度与驱动器打开的百度设置不同。这里就用驱动器打开的百度调试就好了。
这就对上了
5、切换页面
第一次打开百度一下的页面,第二次新建一个页面打开知乎的官网
from selenium import webdriverbrowser = webdriver.Chrome()
browser.get('https://www.baidu.com')
browser.execute_script('window.open()')
browser.switch_to.window(browser.window_handles[1])
browser.get('https://www.zhihu.com/signin?next=%2F')
browser.quit() # 退出
execute_script('window.open()')这个命令就是打开一个新的选项卡,switch_to.window()是切换到某个选项卡,这里是切换到第二个选项卡
selenium threading运行后退出_Selenium的使用相关推荐
- Docker容器运行后退出,怎么才能一直运行?
现象 启动docker容器 docker run –name [CONTAINER_NAME] [CONTAINER_ID] 查看容器运行状态 docker ps -a 发现刚刚启 ...
- python 直接退出程序_python 退出程序 Python程序运行后直接退出
python中exit(0)和exit(1)的用法和区别, exit(0):表示程序正常退出. exit(1):表示程序异常退出. 二.特点不同 exit(0):把exit用在main内的时候无论ma ...
- Selenium之运行效果展示
Selenium之运行效果展示 接下来主要学习selenium自动化测试框架在爬虫中的应用,selenium能够大幅降低爬虫的编写难度,但是也同样会大幅降低爬虫的爬取速度.(selenium可用于爬虫 ...
- 图像形态学(opencv),运行后通过在屏幕上输入对应指令完成相对应的形态学方法。
图像形态学 1.开操作(MORPH_OPEN) 结果图类似腐蚀图 先腐蚀后膨胀的过程,开操作可以帮助消除图像中的小的干扰区域,并且在平滑较大物体的边界的同时不明显改变其面积. 2.闭操作(MORPH_ ...
- Snipaste在Window运行后遇到提示计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll 错误
故障排除 以下为运行 Snipaste 可能遇到的错误及其解决方案. Windows 运行后遇到提示计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll 错误 请根据你操作 ...
- 互联网早报 | 10月3日 星期六 | 微信正式上线青少年模式;阿里巴巴首次披露技术研发投入;本田宣布2021赛季后退出F1...
今日看点 ✦ 微信iOS最新版上线青少年模式,开启后"摇一摇""附近的人"将不可访问 ✦ 腾讯云自研星星海服务器成爆款云产品:规模增长30倍,客户增长50倍 ✦ ...
- Vim修改vimrc一键编译运行后出现请按 ENTER 或其它命令继续
在~/.vimrc中修改配置使得用F5可以一键编译运行后, 出现了"请按 ENTER 或其它命令继续"的提示, 很不美观, 用silent可以解决这个问题 原本配置 参考https ...
- linux vi查看后退出命令,Linux下使用vi命令后退出方式
退出Vi 当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一. 在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell:若当前编辑的 ...
- html5画布显示不出来,运行后html5画布没出来
源自:3-9 使用前端界面调用flask发布的ckpt模型(2) 运行后html5画布没出来 不知道什么原因, 运行后html5画布没出来,跪求解答,谢谢 FLASK_APP = main.py FL ...
最新文章
- 别让低效努力,毁了你
- jmeter获取时间_time 函数
- 图像拾取点_10分钟看懂Photoshop 照片修饰(用“消失点”滤镜编辑照片)
- vue学习:7、路由跳转
- b站2020用户画像_B站2020年度动画大选来袭!论引战,还是要看B站
- mysql bin 恢复工具_基于binlog恢复工具mysqlbinlog_flashback
- Java库转oc_急急急!各位大神:一段JAVA代码转成OC代码。
- 谨慎设计方法签名(40)
- 会安装oracle数据库吗,搭建安装oracle数据库
- C语言小游戏 源码 推箱子
- wps 英文版_为什么现在我会推荐使用wps?
- 深度学习之 RBF神经网络
- 设置华表Cell插件外观时的“闪烁”问题
- 计算机装系统找不到硬盘,安装系统找不到硬盘怎么办
- 腾讯web引用skey g_tk bkn和日期显示分析
- Python 汉字转拼音库 pypinyin, 附:汉字拼音转换工具
- python读取word文档并做简单的批量文档筛选
- 我辛辛苦苦做了一个月的项目,组长年底用来写了晋升PPT
- python处理停用词(stopwords)
- 如何改typecho主题头像_一个比较免费又漂亮的typecho主题-Akina for Typecho