selenium元素定位与操作

1122 篇文章 25 订阅
586 篇文章 11 订阅

说明:本篇博客基于selenium 4.1.0

在selenium中,想要对元素进行操作,一般需要如下步骤:

  1. 在浏览器中查看元素属性,便于selenium在页面中找到该元素
  2. 在代码中创建元素对象
  3. 元素操作、获取元素信息

查看元素属性

浏览器中进入开发者模式

方法1:右键-检查 方法2:设置-更多工具-开发者模式 方法3:默认快捷键F12 出现该页面则进入了浏览器开发者模式,可查看网页结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tf6swSQl-1664184420106)(upload://iauRLUk4DgFfFyKYQHzLuy4pyqj.png)]

找到目标元素的代码

方法1:在目标元素上右键-检查 方法2:使用选择器,选择到目标元素 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MAFAmNCC-1664184420107)(upload://5naek7Xdni92ioieAsbMwiy9Vzm.png)]

创建元素对象

selenium一共提供了八种定位方式,通过这些定位方式即可创建元素对象。分别为:

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

driver = webdriver.Chrome()


element_id = driver.find_element(By.ID, 'id属性值')                              # id定位
element_name = driver.find_element(By.NAME, 'name属性值')                        # name定位
element_class = driver.find_element(By.CLASS_NAME, 'class属性值')                # class定位
element_tag = driver.find_element(By.TAG_NAME, 'html标签名称')                   # tag定位
element_linktext = driver.find_element(By.LINK_TEXT, '文本信息')                 # 文本定位:仅可用于<a>标签
element_partiallinktext = driver.find_element(By.PARTIAL_LINK_TEXT, '文本信息')  # 文本模糊定位:仅可用于<a>标签
element_css = driver.find_element(By.CSS_SELECTOR, 'css表达式')                  # css定位
element_xpath = driver.find_element(By.XPATH, 'xpath表达式')                     # xpath定位
复制代码

元素操作

备注:element代指元素对象

element.click()                         # 点击
element.send_keys("helloworld")         # 输入
element.clear()                         # 清空
element.submit()                        # 提交表单
复制代码

查找元素子节点

以当前element为父节点,查找该元素中的子节点。子节点同样支持selenium的八种定位方式 以百度的"百度一下"为例,我们可以先找到其父节点再找到"百度一下":

element = driver.find_element(By.CSS_SELECTOR, ".s_btn_wr").find_element(By.TAG_NAME, 'input')
复制代码

获取属性

element.tag_name                 # 获取标签名称
element.text                     # 获取文本
element.get_attribute('class')   # 获取属性
element.id                       # 获取selenium内部元素编号
element.size                     # 获取大小,返回值:{"height": xx,"width": xx}
element.location                 # 获取坐标,返回值:{"x": xx),"y": xx}
复制代码

元素状态

返回值:布尔值

element.is_selected()            # 元素是否被选中
element.is_enabled()             # 元素是否可操作
element.is_displayed()           # 元素是否可见
复制代码

备注:元素是否可见,指元素是否出现在网页中,无论元素在不在浏览器的可视窗口内

截图

element.screenshot('study_selenium/resource/element_shot.png')  # 截屏并保存到文件中
photo = element.screenshot_as_png                               # 截屏,已二进制保存在photo变量中

绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛分享他们的经验,还会分享很多直播讲座和技术沙龙

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值