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

元素在超出当前界面的下拉列表中如何定位

有时我们会遇到一种情况是,当我们找一个视频列表中的视频,在页面的最底层,此时selenium 无法定位到这个元素,因为 selenium只能定位页面上显示出来内容的元素,需要通过下拉框把界面拉到该元素所在的位置,再进行定位。

比如我们点击成员,想要在当前界面找成员名为“changcheng1211”的成员,最上面找不到,当往下拉滚动条到这个位置时,才可以定位这个元素。

下面是解决方案,先写一个循环,每次按一下向下的箭头,让界面往下移动,同时定位一下。等定位到就可以退出这个循环。

        # 1、点击页面左侧“成员”login.find_element(By.LINK_TEXT, '成员').click()# 2、点击任意成员头像进入成员主页# 3、点击“关于”进行浏览# Keys这个类中提供了键盘上不能直接输入的按键,比如回车键,F1,ESC...,TAB...# 按住ctrl键,鼠标点击类名,可以查看源码。ARROW_DOWN 是往下。time.sleep(1)ac = ActionChains(login)login.implicitly_wait(1)for i in range(1000):ac.send_keys(Keys.ARROW_DOWN).perform()login.find_element(By.CSS_SELECTOR, '[title="changcheng1211"]').click()

此时会报错:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [title="changcheng1211"]

此时可以把这个错误作为一个异常进行处理,

        # 1、点击页面左侧“成员”login.find_element(By.LINK_TEXT, '成员').click()# 2、点击任意成员头像进入成员主页# 3、点击“关于”进行浏览# Keys这个类中提供了键盘上不能直接输入的按键,比如回车键,F1,ESC...,TAB...# 按住ctrl键,鼠标点击类名,可以查看源码。ARROW_DOWN 是往下。time.sleep(1)ac = ActionChains(login)login.implicitly_wait(1)for i in range(1000):ac.send_keys(Keys.ARROW_DOWN).perform()try:login.find_element(By.CSS_SELECTOR, '[title="changcheng1211"]').click()breakexcept NoSuchElementException:continue

其中,要加入一个隐式等待1秒,增加稳定性。

login.implicitly_wait(1)

滚动条往下循环按一下,

ac.send_keys(Keys.ARROW_DOWN).perform()

增加捕获异常,如果找到这个元素就点击并退出

try:
        login.find_element(By.CSS_SELECTOR, '[title="changcheng1211"]').click()break

如果找不到这个元素就会捕获到NoSuchElementException异常,并继续循环。

except NoSuchElementException:continue
http://www.lryc.cn/news/373282.html

相关文章:

  • Vscode中使用make命令
  • 配置完eslint没有用?
  • [Nacos]No spring.config.import property has been defined
  • 【操作与配置】Pytorch环境搭建
  • 判断QT程序是否重复运行
  • 利用Axios封装及泛型实现定制化HTTP请求处理
  • RN6752V1 高性能AHD转MIPIDVPBT656BT601芯片方案,目前适用于车载方案居多
  • Rust 基金会的商标政策更新引发社区争议
  • Java Opencv识别图片上的虫子
  • 微型操作系统内核源码详解系列五(1):arm cortex m3架构
  • 值传递和址传递
  • 【three.js】自定义物体形状BufferGeometry
  • Mac 使用 Homebrew 安装 Python3
  • 汽车行驶中是怎么保障轴瓦安全的?
  • 洗地机哪款好?洗地机十大名牌排行榜
  • spark mllib 特征学习笔记 (二)
  • 湘潭大学软件工程数据库2(题型,复习资源和计划)
  • 第二十三节:带你梳理Vue2:Vue插槽的认识和基本使用
  • 父亲节马上到了-和我一起用Python写父亲节的祝福吧
  • winform 应用程序 添加 wpf控件后影响窗体DPI改变
  • Web前端开发素材:探索、选择与应用的艺术
  • LeetCode | 20.有效的括号
  • ceph scrub 错误记录
  • cs与msf权限传递,以及mimikatz抓取明文密码
  • Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式
  • 软件体系结构笔记(自用)
  • java安装并配置环境
  • 探索互联网寻址机制 | 揭秘互联网技术的核心,解析网络寻址
  • C语言学习笔记之结构篇
  • C++笔记之一个函数多个返回值的方法、std::pair、std::tuple、std::tie的用法