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']") 


相关文章
|
1天前
|
存储 JavaScript Java
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
【5月更文挑战第11天】WebDriver 的 `isDisplayed()` 方法用于检查页面元素是否可见,如果元素存在于DOM中且可视,返回`true`,否则返回`false`。在自动化测试中,这个方法常用于验证元素是否真正显示在页面上。示例代码展示了如何使用 `isDisplayed()` 判断百度登录页面的特定错误提示文字是否出现。
11 1
|
2天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
12 2
|
3天前
|
敏捷开发 测试技术 持续交付
深入理解自动化测试框架:以Selenium为例
【5月更文挑战第16天】 随着软件行业的迅猛发展,质量保障变得愈加重要。自动化测试作为确保软件质量的重要环节,其效率和可靠性受到了广泛关注。本文旨在深入探讨自动化测试框架的构建与优化,特别是以Selenium框架为例,分析其在实际应用中的优势、常见问题以及解决方案。通过具体案例分析,揭示如何提高自动化测试的稳定性和灵活性,从而更好地服务于敏捷开发和持续集成流程。
19 5
|
3天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
10 0
|
4天前
|
前端开发 Java 测试技术
selenium+python自动化测试--登录
selenium+python自动化测试--登录
12 2
|
4天前
|
Web App开发 缓存 前端开发
《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
【5月更文挑战第8天】这篇文档介绍了如何在IE、Chrome和Firefox浏览器中处理不信任证书的问题。作者北京-宏哥分享了如何通过编程方式跳过浏览器的证书警告,直接访问不受信任的HTTPS网站。文章分为几个部分,首先简要介绍了问题背景,然后详细讲解了在Chrome浏览器中的两种方法,包括代码设计和运行效果,并给出了其他浏览器的相关信息和参考资料。最后,作者总结了处理此类问题的一些通用技巧。
16 2
|
4天前
|
存储 人工智能 测试技术
python自动化测试实战 —— CSDN的Web页面自动化测试
python自动化测试实战 —— CSDN的Web页面自动化测试
194 0
|
4天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
13 1
|
3天前
|
存储 安全 前端开发
第五章 跨域资源共享(CORS):现代Web开发中的关键机制
第五章 跨域资源共享(CORS):现代Web开发中的关键机制
|
4天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
【5月更文挑战第12天】Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
122 2