web自动化之selenium的特殊用法(二)

简介: 文章目录web自动化之selenium的特殊用法(二)selenium-键盘操作,keys的的使用(1)keys包的导入(2)组合键使用(4)常用组合键(5)常用功能键Python-Selenium:如何通过click在新的标签页打开链接?selenium 带有空格的class name且不唯一的元素定位

文章目录

web自动化之selenium的特殊用法(二)

   selenium-键盘操作,keys的的使用

      (1)keys包的导入

      (2)组合键使用

      (4)常用组合键

      (5)常用功能键

  Python-Selenium:如何通过click在新的标签页打开链接?

  selenium 带有空格的class name且不唯一的元素定位


web自动化之selenium的特殊用法(二)

selenium-键盘操作,keys的的使用

(1)keys包的导入

selenium有很完整的键盘操作,都在keys模块里

#导入keys包
from selenium.webdriver.common.keys import Keys

(2)组合键使用

KeysWord_Box = driver.find_element_by_xpath('//*[@id="kw"]')
#搜索框输入内容
KeysWord_Box.send_keys('test')
time.sleep(3)
#Keys.CONTROL代表ctrl键,'a'代表了A键,所以ctrl+A全选就实现了
KeysWord_Box.send_keys(Keys.CONTROL,'a')
#Keys.BACKSPACE代表退格键
KeysWord_Box.send_keys(Keys.BACKSPACE)

这段代码可以看到浏览器打开百度,输入内容,然后全选输入的内容,再退格删除。

(3)常用组合键

功能

语句

全选(Ctrl+A)

send_Keys(Keys.CONTROL,‘a’)

复制(Ctrl+C)

send_keys(Keys.CONTROL,‘c’)

剪切(Ctrl+X)

send_keys(Keys.CONTROL,‘x’)

粘贴(Ctrl+V)

send_keys(Keys.CONTROL,‘v’)

(4)常用功能键

       功能

代码

       回车

Keys.ENTER

       删除

Keys.BACK_SPACE

       空格

Keys.SPACE

       制表

Keys.TAB

       回退

Keys.ESCAPE

       刷新

Keys.F5

Python-Selenium:如何通过click在新的标签页打开链接?

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get(url)
# 查找帖子列表(40条)
post_list = driver.find_elements(By.XPATH, '//ul[@id="waterfall"]/li/h3/a[1]')
# 存储原始窗口的 ID
original_window = driver.current_window_handle
for i in range(0, 40):
    # 点击进入帖子
    print(f'第{i + 1}个帖子')
    # 获取帖子链接
    href = post_list[i].get_attribute('href')
    # 在新的标签页打开链接
    driver.execute_script(f'window.open("{href}", "_blank");')
    # 切换到新的标签页
    driver.switch_to.window(driver.window_handles[-1])
    # 单独处理
    do sth...
    # 关闭当前标签页
    driver.close()
    # 切回到之前的标签页
    driver.switch_to.window(original_window)
driver.quit()

selenium 带有空格的class name且不唯一的元素定位

有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message:


The given selector u-label f-dn is either invalid or does not result in a WebElement. The following error occurred:


InvalidSelectorError: Compound class names not permitted


这个报错意思是说定位语法错了。

class属性中间的空格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称

直接包含空格的CSS属性定位大法

Element=driver.find_element_by_css_selector("[class='col3 fcweak ft12 tal']") 


相关文章
|
3月前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
170 8
|
11天前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
52 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
2月前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
321 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
2月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
147 31
Selenium IDE:Web自动化测试的得力助手
|
1月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
71 9
|
2月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
265 17
Selenium:强大的 Web 自动化测试工具
|
4月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
226 5
|
4月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
4月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
943 5
|
4月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。