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

selenium合集

环境搭建步骤

  • 安装selenium
    pip install selenium

  • 安装浏览器

  • 安装浏览器驱动
    谷歌浏览器:chromdriver.exe
    ie浏览器:ieserverdriver.exe
    FireFox浏览器:geckodriver.exe
    特别注意⚠️:下载驱动版本必须与浏览器版本一致

    下载地址

  • 淘宝镜像:https://npmmirror.com/chromedriver

  • https://chromedriver.storage.googleapis.com/index.html

  • 火狐driver:​https://github.com/mozilla/geckodriver/releases

  • ie driver:​https://seleniumrelease.storage.googleapis.com/index.html

chromedriver.exe文件放置在python安装路径(python.exe所在路径)

mac环境下搭建selenium参考:https://www.cnblogs.com/hq0202/p/16273590.html
chrome 131版本驱动下载地址:https://googlechromelabs.github.io/chrome-for-testing/#stable

浏览器常用操作

driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
#浏览器最大化
driver.maximize_window()
#最小化
driver.minimize_window()
#指定窗口大小
driver.set_window_size(2000,800)
#浏览器前后退
driver.forward()
driver.back()#浏览器标题及url,获取页面资源(断言)
print(driver.title,driver,current_url,driver.page_source)#截图
driver.get_screenshot_as_file("保存图片路径")#浏览器
driver.close()
driver.quit()

元素定位

driver.find_element_by_id()#通过id定位
driver.find_element_by_name()#通过name定位
driver.find_element_by_tag_name()#通过html标签定位,一般情况下不使用这个
driver.find_element_by_link_text()#通过链接文本定位,就是超链接的文本内容
driver.find_element_by_partial_link_text()#通过部分链接文本定位
driver.find_element_by_class_name()#通过类名定位

返回元素列表[]

driver.find_elements_by_partial_link_text()
driver.find_elements_by_id()#通过id定位
driver.find_elements_by_name()#通过name定位
driver.find_elements_by_class_name()#通过类名定位
driver.find_elements_by_tag_name()#通过html标签定位

xpath定位

绝对路径定位

使用浏览器右键复制绝对路径
绝对路径定位一般不要用,要考虑元素的稳定性

相对路径定位

//开头

  • 标签+索引定位
    //form/span[1]/input
  • 唯一定位标签+单个属性
    //form[@id=‘form’]/span[1]/input[@id=‘kw’]
  • 唯一定位标签+多个属性
    多个属性使用and
    //form[@id=‘form’ and @name=‘f’]/span[1]/input
  • 标签+部分属性定位
    //form/span[1]/input[substring(@class,3)=‘ipt’]
    //form/span[1]/input[contains(@class,‘ipt’)]
    //input[starts-with(@id,‘k’)]
  • 通过文本定位
    //a[text()=‘新闻’]

实例

路径表达式结果
bookstore选取 bookstore 元素的所有子节点
/bookstore选取根元素 bookstore。
bookstore/book选取属于 bookstore 的子元素的所有 book 元素。
//book选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
//@lang选取名为 lang 的所有属性。
/bookstore/book[1]选取属于 bookstore 子元素的第一个 book 元素。
/bookstore/book[last()]选取属于 bookstore 子元素的最后一个 book 元素。
/bookstore/book[last()-1]选取属于 bookstore 子元素的倒数第二个 book 元素。
/bookstore/book[position()< 3]选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
//title[@lang]选取所有拥有名为 lang 的属性的 title 元素
//title[@lang=‘eng’]选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
/bookstore/book[price>35.00]选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
/bookstore/book[price>35.00]/title选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

在浏览器开发者工具elements页面,ctrl+f,输入xpath路径可以查看是否可以精确定位到此元素


http://www.mrgr.cn/news/82790.html

相关文章:

  • Clisoft SOS设置Server和Project
  • Unity打包问题集(持续更新)
  • 计算机网络之---信号与编码
  • 【51单片机零基础-chapter5:模块化编程】
  • 探索数字化展馆:开启科技与文化的奇幻之旅
  • OkHttp深度解析:请求流程、分发器机制、拦截器工作及TCP连接复用
  • 【C++】const关键字_运算符重载_继承
  • 基于深度学习的视觉检测小项目(七) 开始组态界面
  • 141.《mac m系列芯片安装mongodb详细教程》
  • 高效内存管理与调试技巧:深入解析 AddressSanitizer
  • Elasticsearch:基础概念
  • 对比显式启用-u_printf_float和-u_scanf_float前后的代码内存体量实验
  • 基于Arduino的FPV头部追踪相机系统
  • 网络的分类与体系结构
  • ply和splat点云在线转换工具
  • 大数据组件(三)快速入门实时计算平台Dinky
  • Vmware安装centos
  • 【Windows】Windows系统中怎么查看被隐藏的文件夹?
  • Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!
  • JDK、JRE、JVM三者的关系、JDK8的新特性、JVM内存结构,堆栈的区别
  • MyBatis学习笔记-数据加密解密
  • github gitbook写书
  • vue项目上传ofd文件,导致文件类型丢失问题
  • 【C#】C# 使用onnxruntime报错记录
  • 51单片机——步进电机模块
  • 【AI落地】AI生成测试用例,claude or gpt?(提效至少 50%)