IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> selenium 4.0 我终于等到了你不容易 -> 正文阅读

[Python知识库]selenium 4.0 我终于等到了你不容易

Selenium 4.0,我终于等到了你,不容易o(╥﹏╥)o

本文环境:Python38、selenium4.1

一、版本更新

2018年的11月1号,selenium的3.141.0这个稳定版本。这个正式版本持续了将近3年的时间。在这里插入图片描述
2021年10月13号,才看到4.0的正式版本,之前全部是所谓的α版本、β版本、RC版本。

所以说,真的让我们等的很辛苦~ ┭┮﹏┭┮

在这里插入图片描述
二、新特性

这次的4.0,selenium总体变化并不大,以下我们关注几个比较大的更新点。

*1、find_element_by_语法弃用

之前的selenium既可以使用find_element_by_*查找元素,也可以使用find_element查找元素。

但是4.0只能使用find_element查找元素。

如果继续使用find_element_by_*查找元素,语法会有删除线,代码虽然可以运行,但是结果有红色的警告,看起来非常不舒服。在这里插入图片描述
正确用法如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# driver.find_element_by_id('kw').send_keys('软件测试')
driver.find_element(By.ID, 'kw').send_keys('软件测试')
input("......")
driver.quit()

2、相对定位器
这种定位器是从人肉眼的角度来区分位置,相当于是第九大定位器了。

比如百度首页,如果我们首先定位到“新闻”,然后把“新闻 ”这个元素当做一个标志,以它作为参考,右边的元素是“hao123”,这种就是相对定位器。

但是注意下,这里的相对定位并不是同一行,以下截图的绿色框部分,同样也属于“新闻”元素右边元素。在这里插入图片描述
相对的位置有如下几个:在这里插入图片描述
参考代码:

with_tagname只有找相对位置的标签名,locate_with可以使用八大元素定位

from selenium.webdriver.support.relative_locator import with_tag_name
from selenium.webdriver.support.relative_locator import locate_with
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')

link = driver.find_element(By.LINK_TEXT, '新闻')
# ele=driver.find_element(with_tag_name('a').to_right_of(link))
ele = driver.find_element(locate_with(By.TAG_NAME, 'a').to_right_of(link))
print(ele.get_attribute('outerHTML'))

input("......")
driver.quit()

3、打开新窗口

之前的selenium打开新窗口,并不是selenium控制的,而且html控制的,比如a标签的target属性。

4.0开始,我们可以通过selenium切换新窗口,并且自动切换上下文(句柄),非常的方便。

使用的方法是switch_to_new_window,如果是’tab’,标签页打开窗口;如果是’window’,打开一个新的窗口。

参考代码:

from selenium import webdriver
from selenium.webdriver.common.by import By

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

# tab标签
driver.switch_to.new_window('tab')
driver.get("https://www.bing.com/")
driver.find_element(By.ID,'sb_form_q').send_keys('软件测试')

# 新窗口
# driver.switch_to.new_window('window')
# driver.get("https://www.bing.com/")
# driver.find_element(By.ID, 'sb_form_q').send_keys('软件测试')

input("...")
driver.quit()

4、支持CDP协议

chrome devtools protocol(CDP)允许第三方对基于 chrome 的 web 应用程序进行调试、分析等,它基于 WebSocket,利用 WebSocket 建立连接 DevTools 和浏览器内核的快速数据通道。一句话,有了这个协议就可以自己开发工具获取 chrome 的数据。

其实,CDP就是谷歌开发者工具的命令。

CDP官网:Chrome DevTools Protocol - Emulation domain在这里插入图片描述
我们可以使用execute_cdp_cmd这个方法调用CDP的命令。

参考代码:

通过如下我们就可以打开一个手机版的百度首页。

from selenium import webdriver

driver = webdriver.Chrome()
driver.execute_cdp_cmd(
    "Emulation.setDeviceMetricsOverride",
    {
        "width": 720,
        "height": 1280,
        "mobile": True,
        "deviceScaleFactor": 1.0
    }
)

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

input("...")
driver.quit()

OK,今天的分享到此结束,后续再分享一些其它技术知识~

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

在这里插入图片描述

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

点击文末小卡片领取

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:19:02  更:2022-07-17 16:22:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 2:30:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计