Web自动化Selenium-获取页面元素的相关信息

2023-10-30

获取页面元素的信息主要有两个目的:一是执行完步骤后进行断言;二是获取前一步骤的响应结果,将其作为后续步骤的输入或判断条件。

获取元素的基本信息

◆目的输出元素的大小、文本、标签名。

◆关键字●.tag_name,输出元素的标签名。

●.size,输出元素的大小。

●.text,输出元素的文本(适用于链接元素)。

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/") #打开百度首页
ele = driver.find_element_by_link_text('新闻') #将新闻这个元素赋给变量ele
print(ele.tag_name) #输出标签名
print(ele.text) # 输出文本
print(ele.size) # 输出大小
driver.quit()

 获取元素的属性信息

◆目的获取元素的属性信息,如id、name、class name、value等。

◆关键字get_attribute('id/name/value等'):获取元素的属性信息。

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
ele1 = driver.find_element_by_id('su') # 通过id定位百度搜索按钮
ele2 = driver.find_element_by_id('kw') # 通过id定位百度搜索框

print(ele1.get_attribute('id'))  #输出搜索按钮的id属性
print(ele2.get_attribute('name')) #输出搜索框的name属性
print(ele1.get_attribute('value')) #输出按钮的文字,也就是value属性
print(type(ele1.get_attribute('name')))
print(ele1.get_attribute('name'))

driver.quit()

 获取元素的CSS属性值

◆目的输出元素的CSS属性值,如元素的高、宽、字体等。◆关键字value_of_css_property('height/width/font-family'):输出元素的CSS属性值。

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
ele = driver.find_element_by_link_text('新闻') #通过link_text定位新闻元素

#height,输出元素的高
print(ele.value_of_css_property('height'))
#width,输出元素的宽
print(ele.value_of_css_property('width'))
#font-family,输出元素所使用的字体
print(ele.value_of_css_property('font-family'))

driver.quit()

判断页面元素是否可见 

is_displayed:判断元素是否可见,如果可见,返回True;反之,返回False。 

判断页面元素是否可用 

is_enabled:如果元素可用,返回True;反之,返回False。 

如果页面元素有disabled的属性的话,则页面元素不可用

判断元素的选中状态

◆目的判断元素的选中状态。

◆关键字is_selected:判断复选框或单选按钮的选中状态。

◆注意事项如果选中或者取消选中复选框或单选按钮页面有加载时间的话,要合理使用等待,然后再判断选中状态。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web自动化Selenium-获取页面元素的相关信息 的相关文章

  • 带有隐藏输入的 Selenium 文件选择器[type=file]

    我有一个图像文件上传并想测试它硒 java 用户有两个选择 他可以通过从本地计算机拖放来推送图像 也可以单击 浏览 按钮 然后出现浏览器指定的文件选择器 In Selenium我尝试了不同的事情 据我所知Selenium不提供浏览器之外的操
  • java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V 通过 Java 使用 IE 和 Selenium

    我正在尝试将 selenium 与 sikuli 一起使用 所以 sikuli 不会使用当前的 java 设置在 64 位上运行 因此在我的项目中将运行时更改为指向 32 位运行时环境 并使用 32 位 iewebdriver 添加我的 s
  • 如何禁用页眉和页脚 Selenium 打印

    有谁知道如何在硒中打印时禁用 页眉和页脚 选项 默认情况下设置为 true 有人知道如何解决这个问题吗 谢谢你 import json import os from selenium import webdriver setting htm
  • docker 中的 Capybara headless chrome 返回 DevToolsActivePort 文件不存在

    我正在尝试配置系统测试以使用硒中的无头铬 我有以下水豚配置 spec support capybara rb Capybara server puma Silent true RSpec configure do config config
  • Selenium - 保存网站,包括所有图像、css、dom

    我想使用 firefox 或 chrome 访问带有 selenium 的页面 当页面加载时 我想从页面下载所有图像 css dom 我想存储每张图像 就像我在其中找到它们一样 chrome gt Tools gt Development
  • 硒 Twitter java

    我正在尝试使用 Selenium Webdriver 连接到我的 Twitter 帐户 WebDriver driver new FirefoxDriver driver get https www twitter com login We
  • 如何检查当前日期并移至下一个日期

    我遇到了一个我似乎无法理解的 python 问题 不确定是否需要使用 if 语句 但因为我是 python 新手 所以我实际上不确定如何编写这个小问题 事实上 这就是我遇到的问题 对于出发日历 我希望 python 能够执行以下操作 查看
  • 如何在 Angular2 中实现间隔/轮询以与量角器一起使用?

    我有一个 angular2 应用程序 我想用量角器进行测试 在此应用程序中 我有一个带有图表的页面 该页面正在使用自动生成的数据定期更新 显然 Protractor 的一项功能是在执行测试代码之前等待脚本和 http 调用完成 但是 如果有
  • 使用 python 和 selenium 自动化 Google 登录显示“此浏览器或应用程序可能不安全”

    我尝试使用 Gmail 或任何 Google 服务登录 但显示以下 此浏览器或应用程序可能不安全 消息 我还尝试执行诸如在我的 acc 中启用不太安全的应用程序之类的选项 但它不起作用 然后我创建了一个新的谷歌帐户 它对我有用 但我的旧配件
  • 如何将 chromedriver 与 selenium webdriver 代理一起使用?

    我们的网络环境使用代理服务器连接到外部互联网 在IE gt Internet选项 gt 连接 gt LAN设置中配置 例如 10 212 20 11 8080 现在 我在 chrome 和 IE 上使用 selenium webdriver
  • 使用 Python 打开新窗口时,selenium window_handles 不正确

    我想使用 selenium 和 Python 在一个浏览器中打开多个选项卡 并通过多个选项卡同时抓取实时投注赔率 网站主页生成游戏列表 但是 除非您找到游戏元素并使用 click 该网站是 ajax 密集型 否则无法获取游戏链接 这会在同一
  • 45000 ms 内无法绑定锁定端口 70 54

    当我尝试使用 MVN 测试命令行运行我的 selenium 测试时 出现此错误 奇怪的是 我三天前尝试了一下 运行成功了 T E S T S Running GoogleNavigationTest Tests run 1 Failures
  • 在 selenium webdriver 中打开一个新窗口而不是新选项卡

    当在我的应用程序中手动单击链接时 它会在 Chrome 和 IE 中的新选项卡中打开 但是 当我的脚本运行时 该链接会在 IE 中的新窗口而不是新选项卡中打开 相同的脚本在 Chrome 中按预期运行 知道如何摆脱这个吗 更改 IE 的默认
  • Selenium WebDriver - 意外的模式对话框警报

    我正在尝试使用 WebDriver 来自动化网站 我正在使用 Firefox 驱动程序 但主页有一个弹出模式警报窗口 显示 您需要使用 IE 6 0 才能查看此应用程序 还有一些 功能可能无法使用 我检查了页面的来源 它有一个功能 Moda
  • 设置已运行的 selenium webdriver 的功能

    在硒测试步骤 如单击按钮 中 我想防止硒等待页面完成加载 我无法抛出加载异常 因为那样我就无法再使用该页面了 可以做类似的事情 如下所示 DesiredCapabilities dr DesiredCapabilities chrome d
  • 硒脚本

    我想使用 selenium 脚本逐个单击网页上的一堆链接 每次单击都会刷新页面 然而 selenium 不支持像 visited 这样的 css 伪类 所以我无法区分已经点击的和我接下来要点击的 有办法解决我的问题吗 这是我的代码 http
  • 无法摆脱脚本中的硬编码延迟

    我用 vba 结合 selenium 编写了一个脚本来解析网页中可用的所有公司名称 该网页启用了延迟加载方法 因此每个滚动中只有 20 个链接可见 如果我滚动 2 次 则可见链接数为 40 个 依此类推 该网页中有 1000 个可用链接 我
  • Selenium 中的“断言”与“验证”

    Selenium 执行的检查通常有两种形式 assertFoo 和 verifyFoo 据我所知 assertFoo 使整个测试用例失败 而 verifyFoo 只是记录该检查的失败并让测试用例继续进行 因此 使用 verifyFoo 即使
  • 如何使用 xpath 检查某个对象在网页中是否可见?

    我正在 R 中使用 RSelenium 包来进行网络抓取 有时加载网页后 需要检查某个对象在网页中是否可见 例如 library RSelenium open a browser RSelenium startServer remDr lt
  • 哪个 Firefox 版本与 Selenium 2.48.0 兼容

    谁能帮我 哪个 Firefox 版本与 Selenium 2 48 0 兼容 Selenium WebDriver 2 48 支持到 firefox 41 0 版本 有关更多详细信息 请查看 selenium webdriver 的更新日志

随机推荐

  • 你了解c++中的关键字virtual吗?

    virtual在英文中表示 虚 虚拟 的含义 c 中的关键字 virtual 主要用在两个方面 虚函数与虚基类 下面将分别从这两个方面对virtual进行介绍 1 虚函数 虚函数源于c 中的类继承 是多态的一种 在c 中 一个基类的指针或者
  • 半路转行,如何学编程?这些建议给你

    有网友在网上提问 转行学编程还能成为技术大牛吗 收到诸多网友评论的同时 也被不少网友反问 1 成不了技术大牛 就不学编程了吗 2 学习是一辈子的事情 哪里来的半路出家 25岁学编程 35岁的时候你就是有10年编程经验的人 3 在互联网时代
  • FBX SDK环境配置

    参照这个https blog csdn net lilysara article details 53940353 注意事项1 选择lib文件夹的时候注意和电脑配置匹配 不匹配的话会报这个错误 配置成功后可以引入fbxsdk头文件 并调试运
  • 高手在交易中总结的期货

    知与行 常听说 做期货 知易行难 但我认为 当 知 的问题解决了 行 就不是问题 知 可以理解为盈利模式 有了盈利模式 严格执行 做到 知行合一 自然就可以做到长期持续盈利 因此 知易行难 常是认识的误区 当你发现 行难 时 其实是 知 的
  • 以太网 ARP

    在以太网中 一个主机和另一个主机进行通信 必须要知道目的主机的 MAC 地址 物理地址 而目的 MAC 地址的获取由 ARP 协议完成 ARP 概述 ARP Address Resolution Protocol 即地址解析协议 是根据 I
  • golang字符串首字母转化为大写

    字符串首字母转化为大写 字符串首字母转化为大写 ios bbbbbbbb gt iosBbbbbbbbb func strFirstToUpper str string string temp strings Split str var u
  • mysql模糊搜索 like_Mysql必知必会(3):模糊查询(LIKE)

    本文介绍什么是通配符 如何利用通配符进行数据库数据过滤查询 本文使用的数据表在本文最后附录 简介 之前几篇文章的所有例子查询的条件都是确定的值 比如大于20 或者用户ID为1 但是 有些时候我们需要查询一些不太确定的值 比如用户在输入框输入
  • 算法之回溯算法

    目录 前言 如何理解回溯算法 两种回溯算法的经典应用 1 0 1背包 2 正则表达式 总结 参考资料 前言 很多经典的数学问题都可以用回溯算法解决 比如数独 八皇后 0 1 背包 图的着色 旅行商问题 全排列等等 用来指导像深度优先收索这种
  • 40-400-044-运维-优化-MySQL order by 优化

    文章目录 1 概述 2 MySQL中的两种排序方式 3 ORDER BY优化的核心原则 4 ORDER BY优化实战 ORDER BY优化 WHERE ORDER BY 优化 Filesort优化 1 概述 本篇文章我们将了解ORDER B
  • 【BUG

    问题 运行Inpaint Anything时 pycharm中的conda环境下的tensorflow问题 2023 04 19 10 53 30 485189 I tensorflow core platform cpu feature
  • [非卷积5D] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    不使用3D建模 使用静态图片进行训练 用 非卷积 深度网络表示场景的5D连续体表示 再通过ray marching进行渲染 paper NeRF Representing Scenes as Neural Radiance Fields f
  • idea数据库表生成实体类

    先说一下实现的功能 根据数据库 生成实体类 生成的实体类的格式可参看下图 生成的实体类中加入的注解有 Table注解 无getset方法 加入了lombok的 DATA Slf4j注解 支持 ID注解 当字段名为id时 如果数据库表中字段通
  • java比较string是否相同

    比较引用 equals 比较值 1 java中字符串的比较 我们经常习惯性的写上if str1 str2 这种写法在java中可能会带来问题 example1 String a abc String b abc 那么a b将返回true 因
  • 弹性盒子(flex布局)

    传统布局 兼容性好 布局繁琐 局限性 不能再移动端很好的布局 flex弹性布局 操作方便 布局极为简单 移动端应用广泛 PC端浏览器支持情况较差 布局原理 flex意为 弹性布局 用来为盒状模型提供最大的灵活性 任何一个容器都可以指定为fl
  • .net core 整洁架构入门

    Clean Architecture with NET Core Getting Started 使用 NET Core整洁架构 Clean Architecture 入门 Over the past two years I ve trav
  • 融合黄金正弦,十种混沌映射,搞定!把把最优值,本文思路可用于所有智能算法的改进...

    上一期的2023年最新优化算法之减法优化器算法 SABO 效果已经相当不错了 而且由于其十分简单的公式原理 更适用于刚接触智能优化算法的小伙伴 今天这篇文章为大家带来 融合黄金正弦的减法优化器 GSABO 本文会讲解一下改进思路 为各位小伙
  • 流程型和离散型制造行业mes系统的区别

    流程型和离散型制造行业mes系统的区别 在制造信息化的时代背景之下 MES系统 被越来越多的企业重视 虽然MES系统在制造行业中有着巨大的价值 但是不同的企业对MES系统的需求也存在很大的差异性 比较突出的就是流程型和离散型这两个方面 那么
  • 修改linux命令行终端的显示区行数列数

    stty rows 50 columns 200
  • Bugkuctf web 前女友

    老规矩 有新东西就记上一记 题目链接 这个有点儿意思 打开源码 好了 代码意思比较简单 重点看圈住的代码就好 满足v1v2的值不等但是md5相等 且v3 flag才行 好了 新知识来了 首先是md5 函数漏洞 第一种 GET a GET b
  • Web自动化Selenium-获取页面元素的相关信息

    获取页面元素的信息主要有两个目的 一是执行完步骤后进行断言 二是获取前一步骤的响应结果 将其作为后续步骤的输入或判断条件 获取元素的基本信息 目的输出元素的大小 文本 标签名 关键字 tag name 输出元素的标签名 size 输出元素的