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

简介: 文章目录web自动化之selenium的特殊用法(一)1、get_attribute()2、js滚动页面3、Tab键点击页面未展示元素4、通过空格键执行页面滚动操作1.摁空格键2.报错:TypeError: list indices must be integers or slices, not WebElement————————————————版权声明:本文为CSDN博主「梦无矶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_46158060/article/details/

文章目录

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

1、get_attribute()

2、js滚动页面

3、Tab键点击页面未展示元素

4、通过空格键执行页面滚动操作

   1.摁空格键

   2.报错:TypeError: list indices must be integers or slices, not WebElement


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

1、get_attribute()

官方文档释义


selenium.webdriver.remote.webelement — Selenium 4.1.0 documentation


get_attribute(name) → str[source]


Gets the given attribute or property of the element.


获取元素的给定属性或属性。


This method will first try to return the value of a property with the given name. If a property with that name doesn’t exist, it returns the value of the attribute with the same name. If there’s no attribute with that name, None is returned.


该方法将首先尝试返回具有给定名称的属性的值。 如果具有该名称的属性不存在,则返回具有相同名称的属性的值。 如果没有这个名称的属性,则返回’ None '。


Values which are considered truthy, that is equals “true” or “false”, are returned as booleans. All other non-None values are returned as strings. For attributes or properties which do not exist, None is returned.


被认为为真值的值,即等于“真”或“假”的值,将作为布尔值返回。 所有其他非’ None ‘值将作为字符串返回。 对于不存在的属性或属性,将返回’ None '。


To obtain the exact value of the attribute or property, use get_dom_attribute() or get_property() methods respectively.


要获得属性或属性的确切值,请分别使用’ get_dom_attribute() ‘或’ get_property() '方法。

Example:

# Check if the "active" CSS class is applied to an element.
is_active = "active" in target_element.get_attribute("class")

里面可以填所有的属性,目前我尝试过的有如下几个

#获取元素标签的内容:
get_attribute('textContent')
#获取元素内的全部HTML:
get_attribute('innerHTML')
#获取包含选中元素的HTML:
get_attribute('outerHTML')
get_attribute('class')
get_attribute('name')
get_attribute('id')
get_attribute('href')

2、js滚动页面

通过js执行页面滚动条操作

#滚动屏幕元素可见
# 将页面向下拉取400像素
print(f"将页面向下拉取{int(index/5+1)*400}像素")
self.driver.execute_script(f"window.scrollTo(0,{int(index/5+1)*420});")
time.sleep(3)

3、Tab键点击页面未展示元素

用法实例

history_element_id = "changehistory-tabpanel"
history_element = self.driver.find_element_by_id(history_element_id)
# time.sleep(0.5)
history_element.send_keys(Keys.TAB) #通过tab键来查找页面元素
#点击history的按钮,使得下面的内容显示出来
history_element.click()

4、通过空格键执行页面滚动操作

终极大法,按住下键或者摁空格键可以到达页面底部

1.摁空格键

注意:如果页面有多个滚动条,则需要鼠标左键单击对应的滚动条对应页面

直接进入页面点空格键是没有反应的,需要点击一下页面在摁空格键才有效果

from selenium.webdriver.common.action_chains import ActionChains
print(2)
print("移动鼠标点击左键  ")
ActionChains(self.driver).move_by_offset(300, 900).click().perform()
print("摁住空格键")
time.sleep(3)
actions = ActionChains(self.driver)
actions.send_keys(Keys.SPACE).perform()

2.报错:TypeError: list indices must be integers or slices, not WebElement

#获取25条数据
crashNum = self.driver.find_elements(By.CLASS_NAME,'particle-table-row')
print(len(crashNum))
for i in crashNum:
    particle_table_row = self.driver.find_elements(By.CLASS_NAME,'particle-table-row')[i]
    msg = particle_table_row.text
    print(msg)

上面运行是会报错:

修改为如下即可:

#获取25条数据
crashNumList = self.driver.find_elements(By.CLASS_NAME,'particle-table-row')
print(len(crashNumList))
for crashNumListIndex,crashNum in enumerate(crashNumList):
    particle_table_row = crashNumList[crashNumListIndex]
    msg = particle_table_row.text
    print(msg)


相关文章
|
4天前
|
Web App开发 数据采集 测试技术
五分钟轻松掌握 Python 自动化测试 Selenium
本文主要介绍了 Selenium 相关内容,主要涉及 Selenium 知识面,从开始的 Python 小案例,到后面的 API 全面了解,以及 Selenium 的常用功能,到最后的 XPATH 以及爬虫的认知。这些内容已经能够全面,且具有实践性。
|
7天前
|
Web App开发 IDE 测试技术
天呐!当揭开 Selenium 自动化测试框架的神秘面纱,设计与实现令人瞠目!
【8月更文挑战第12天】Selenium 是一强大自动化测试框架,用于Web应用测试。它含WebDriver、IDE和Grid等工具,支持Chrome、Firefox等浏览器。可通过编程模拟用户交互验证应用功能。例如使用Python结合Selenium WebDriver编写自动化测试脚本,实现打开网页、操作元素及断言等功能。还可结合测试框架和Selenium Grid提升测试效率和并行执行能力。
19 1
|
15天前
|
Web App开发 人工智能 测试技术
探索自动化测试的高效之路:以Selenium为例
【8月更文挑战第4天】在软件开发周期中,测试阶段扮演着至关重要的角色。自动化测试作为提高测试效率和准确性的有效手段,已逐渐成为开发流程中的标配。本文将通过介绍Selenium这一流行的自动化测试工具,探讨如何构建高效的自动化测试框架,并通过实际代码示例,揭示其在提升软件质量与开发效率方面的巨大潜力。
|
17天前
|
Web App开发 Java 测试技术
自动化测试中的神器:Selenium WebDriver
【8月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘航船,而Selenium WebDriver则是这艘航船上的强力引擎。本文将带你领略Selenium WebDriver的魅力,从安装到实战应用,一步步揭开其神秘的面纱,让你在自动化测试的旅程上乘风破浪。
18 1
|
18天前
|
Web App开发 JavaScript 前端开发
探索自动化测试:以Selenium为例
【8月更文挑战第1天】在软件开发的海洋中,自动化测试如同一艘航船,它能够带领我们高效地穿梭于代码的波涛之中。本文将揭开自动化测试的神秘面纱,通过一个具体的例子—使用Selenium进行Web应用测试—来展示其魅力所在。我们将从搭建环境开始,逐步深入到编写测试用例,最后实现测试的自动化执行。这不仅是一次技术的探险,更是对效率和质量双重追求的体现。那么,让我们一起启航,去发现自动化测试的力量吧!
|
19天前
|
Web App开发 Java 测试技术
探索自动化测试的利器:Selenium WebDriver
【7月更文挑战第31天】在软件开发的海洋中,自动化测试如同指南针,为质量保驾护航。本文将深入介绍Selenium WebDriver这一强大的自动化测试工具,通过实际代码示例,揭示其在提高测试效率与准确性方面的巨大潜力。
14 0
|
19天前
|
Web App开发 测试技术 API
自动化测试的利器:Selenium WebDriver
【7月更文挑战第31天】在当今软件开发周期不断缩短的背景下,自动化测试已成为确保软件质量不可或缺的一环。Selenium WebDriver作为一款流行的自动化测试工具,以其灵活性和强大的功能受到广大开发者的喜爱。本文将深入探讨Selenium WebDriver的核心组件、工作原理以及如何通过代码示例进行基本的网页自动化操作。我们将通过实践来揭示Selenium WebDriver如何在提高测试效率的同时,保证软件产品的质量标准。
17 0
|
19天前
|
安全 测试技术 网络安全
网络安全的盾牌:漏洞管理、加密技术和安全意识自动化测试中的神器:Selenium WebDriver
【7月更文挑战第31天】在数字化浪潮中,信息安全成为保护个人隐私和商业秘密不可或缺的一环。本文将探讨网络安全中的常见漏洞,介绍加密技术的基础原理,并强调培养良好的安全意识的重要性。通过实际代码示例,我们将展示如何在现实世界中应用这些概念来提高系统的安全性。 【7月更文挑战第31天】在软件开发的广阔天地中,自动化测试以其高效、准确的特点,成为了提升软件质量的关键一环。Selenium WebDriver,作为自动化测试领域的佼佼者,不仅简化了测试流程,还提升了测试效率。本文将深入探讨Selenium WebDriver的核心组件和工作原理,并通过实际代码示例,展示其在自动化测试中的应用价值。无
30 0
|
19天前
|
Web App开发 前端开发 测试技术
自动化测试框架的设计与实现:以Selenium为例##
【7月更文挑战第31天】 在软件测试领域,自动化测试已成为提高产品质量、效率和可靠性的关键手段。本文将深入探讨如何设计并实现一个有效的自动化测试框架,并以流行的Selenium工具为例,展示其在实际项目中的应用。我们将通过具体代码示例,了解框架的搭建步骤、关键技术点以及如何克服常见挑战,旨在为读者提供一个清晰的指南,从而能够自行构建和维护自己的自动化测试系统。 ##
13 0
|
19天前
|
Web App开发 JavaScript 前端开发
自动化测试的新篇章:使用Selenium和Python进行Web应用测试
【7月更文挑战第31天】在软件开发生命周期中,测试环节是确保产品质量的关键步骤。随着技术的发展,自动化测试已成为提升效率、减少人为错误的重要手段。本文将通过实例介绍如何结合Selenium WebDriver和Python语言,构建一个基本的自动化测试框架,旨在帮助读者理解并实现自动化测试脚本,从而提高软件测试的效率和质量。
23 0