当前位置: 首页 > news >正文

Python selenium元素的定位

视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium

对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他 会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这 个人。

那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。

注意:不管用那种方式,必须保证页面上该属性的唯一性

webdriver 提供了一系列的对象定位方法,常用的有以下几种

id 通过标签id定位

name 通过标签name定位

class name 通过标签class定位

link text 通过超链接文本定位

partial link text 通过超链接文本(模糊匹配)定位

tag name 通过标签名定位

xpath 通过xpath方式定位

css selector 通过css选择器方式定位

webdriver提供了两个方法查询元素

find_element (查询第一个匹配元素) 和find_elements(查询所有匹配元素)

参考代码:

import timefrom selenium import webdriver
from selenium.webdriver.common.by import By# 创建浏览器操作对象
browser = webdriver.Chrome()
url = "https://www.baidu.com/"browser.get(url)# 元素定位# 根据id查找对象
button = browser.find_element(By.ID, 'su')print(button)# 根据标签名查找
e1 = browser.find_element(By.TAG_NAME, 'input')
print("e1", e1)# 根据标签的name属性值查找
e2 = browser.find_elements(By.NAME, "wd")
print("e2", e2)# 根据xpath查找
e3 = browser.find_elements(By.XPATH, '//input[@id="su"]')
print("e3", e3)# 使用css选择器方式查找
e4 = browser.find_element(By.CSS_SELECTOR, ".s_ipt")
e5 = browser.find_element(By.CSS_SELECTOR, "#su")
print("e4", e4)
print("e5", e5)# 使用链接文本查找
e6 = browser.find_element(By.LINK_TEXT, "新闻")
e7 = browser.find_elements(By.PARTIAL_LINK_TEXT, "新")
print("e6", e6)
print("e7", e7)# 使用样式名称查找
e8 = browser.find_element(By.CLASS_NAME, "s_ipt")
print("e8", e8)

http://www.lryc.cn/news/214166.html

相关文章:

  • Android图形系统之HWComposer、ComposerHal、ComposerImpl、Composer、Hwc2::Composer实例总结(十四)
  • MASK-RCNN tensorflow环境搭建
  • 企业级开发命名规范有哪些?
  • sitespeedio.io 前端页面监控安装部署接入influxdb 到grafana
  • ModStartCMS v7.5.0 内外网映射节流,安全使用增强
  • 【LVS实战】02 搭建一个LVS-NAT模式实验
  • Word 将文档中的【第几条】批量加粗
  • 苹果AirTag固件更新
  • 04.Oracle的体系架构
  • 01【保姆级】-GO语言特点和安装使用和hello
  • EVM6678L 开发教程: IBL-TFTP 引导 elf 文件
  • 接口测试 —— Jmeter 之测试片段的应用
  • 接入文心一言实战(一):API申请与测试
  • 518抽奖软件,安全稳定,不怕手抖误按键
  • 【STM32G431RBTx】备战蓝桥杯嵌入式汇总
  • 【抽奖系统】
  • 如何在外SSH远程连接Ubuntu系统【无公网IP】
  • 在防御CC攻击上,高防CDN起着什么作用?
  • 被这7款在线涂鸦画板惊艳到,手残也能画出涂鸦大片!
  • pt权重转onnx记录
  • 瑞数专题五
  • 【Androidstudio学习笔记】设计引导页功能
  • 【python】中位数(暴力+最大最小堆)
  • Avro 如何生成java Bean
  • EG4003-一颗为微波、红外信号放大及处理输出的数模混合芯片
  • kafka生产者源码精华总结
  • 边界缩小维护最值——倒序枚举/中部切开:1101T2
  • vue实现购物车案例
  • 工业4G路由器桥接多网络,提升工业环境网络覆盖
  • docker 存储目录迁移