Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

这篇具有很好参考价值的文章主要介绍了Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天在做练习题的时候,发现几个问题捣鼓了好久,写下这篇来记录

问题一: 有层级的复选框无法定位到二级目录

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

 

对于这种拥有二级框的选项无法定位,也不是<select>属性.

我们查看下HTML,发现它是被单独封装在body内拥有动态属性的独立<div>,当窗口点击的时候才会触发.

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

 

解决: 

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

driver.find_element(By.XPATH,'//*[@id="app"]/div/div[2]/section/div/div/div[2]/form/div[1]/div/span/span').click()
sleep(1)
driver.find_element(By.XPATH,'/html/body/div[2]/ul[1]/li[2]').click()
sleep(1)
driver.find_element(By.XPATH,'/html/body/div[2]/ul[2]/li[2]').click()
sleep(1)

 

问题二:封装成<div>的动态日历无法定位

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?
Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

这个日历和上一个问题一样,也是被单独封装在最后的<div>里,当输入框被点击时才会弹出,此时使用 select方法和js删除属性都没法直接输入日期值.

使用问题一的解决方案:

发现还是定位不了,虽然在Chrome中定位是正确的,也能点击日历弹出,但是却无法定位到日历中.

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

解决方案:

此时就要通过需要点击的位置的父级标签去定位,而不能使用绝对路径

而在刚刚二级框中则是要使用绝对路径去定位.

有多个相同的属性的话,用find_elements复选属性来确定要哪个.

Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?

# 点击启动弹窗
self.driver.find_element(By.CSS_SELECTOR, 'input[placeholder="选择结束时间"]').click()
sleep(1)

# 定位不到(绝对路径)
# driver.find_element((By.XPATH,'/html/body/div[5]/div[1]/div/div[3]/table[1]/tbody/tr[6]/td[4]/div/span')).click()

# 使用父级标签定位
driver.find_elements(By.XPATH,'//tbody/tr[6]/td[4]')[0].click()

注意事项:

在使用XPath定位的时候,会因为过快导致还没找到元素(添加智能等待(隐式等待)也会),导致python报错终止,所以适当在点击前增加强制等待(sleep)就能解决问题

当定位的标签有多个时,可用复选属性来定位(下标是从0开始的)

driver.find_elements(By.TAG_NAME, "标签名")[下标]

最后的最后:

问题虽然是解决了,可是为啥二级选框要使用绝对路径,而日历却不行,有懂得的小伙伴吗?文章来源地址https://www.toymoban.com/news/detail-746757.html

到了这里,关于Selenium4+python被单独定义<div>的动态输入框和二级下拉框要怎么定位?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python3 Selenium4 chromedriver Pycharm闪退的问题

    Python3版本:3.11.5 Pycharm版本:2023.2.1 Chrome版本:117.0.5938.150(正式版本)  在使用最新版的Selenium4版本时,chromedriver可以驱动Chrome但是闪退,Selenium目前最新版本是4.13.0(Python版) 可能原因: 1.chromedriver版本和Chrome版本不一致导致,chromedriver版本是能下载到的最新版:117.0.5

    2024年02月06日
    浏览(50)
  • 【HTML】使用 div 自定义实现 input、textarea 输入框(适合定制化场景)

    API参考文档: contenteditable : https://developer.mozilla.org/zh-CN/docs/Web/HTML/Global_attributes/contenteditable resize :https://developer.mozilla.org/zh-CN/docs/Web/CSS/resize 不禁止回车换行就会变成这个样子: react 使 多行文本输入框 里面的原有文案,与生成后的推理文案,用颜色区分开来 效果图: 代码实

    2024年02月13日
    浏览(46)
  • Python+Selenium4浏览器交互_web自动化(2)

    目录 0. 上节内容回顾 1 . 浏览器基本操作 1.1 启动 退出 1. 手动安装driver ,启动浏览器时,需要传递2个参数: 1.2 窗口设置 1.3 页面导航 1.4 获取页面信息 1.5 页面截图 2. 浏览器的高级操作 2.1 窗口切换 2.2 操作Cookies 2.3 执行JavaScript 今日内容:浏览器交互(调整窗口大小、导航

    2023年04月08日
    浏览(67)
  • Python+Selenium4三大等待&预期条件_web自动化(4)

    目录 0. 上节回顾 1. 定位失败的原因 2. 强制等待 3. 隐式等待 4. 显式等待 【重点难点】 4.1. 实例化 WebDriverWait 对象 4.2. 指定等待条件 4.3. 等待条件的具体要求 4.3. 1. 等待条件是一个函数 4.3. 2. 返回值是布尔值 4.3. 3. 只有一个参数,参数值是driver 4.3. 4. 出现异常 5. 流畅等待 (

    2024年02月11日
    浏览(48)
  • 自动化测试之八大元素定位方式(python3.10+selenium4)

    元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。 系统环境 Windows 11 📌 python3.10.5 🔖 selenium 4.8.0 🚩 注意:以下每种定位方式均有一

    2024年02月03日
    浏览(79)
  • 013-Python3.11.8+selenium4.18.1+Web元素定位大法

    2024现烤现卖热乎的自动化测试之《元素定位大法》最新版本教程 环境配置:         Python版本:Python3.11.8         Selenium版本:Selenium4.18.1         Firfox版本:123.0.1(64位)

    2024年03月20日
    浏览(59)
  • Python+Selenium4环境搭建与原理讲解_web自动化(1)

    1. 认识Selenium 2. Selenium 三大组件 3. Selenium自动化测试环境搭建 3.1 安装selenium 库 3.2 安装浏览器驱动 1. 查看浏览器版本号 2. 下载浏览器驱动 3. 把driver移动到Path目录 4. 验证driver就绪   3.3 启动浏览器 4. Selenium自动化测试环境的自动化配置 1. 安装依赖 2. 启动浏览器 5. Selenium工作

    2024年02月06日
    浏览(108)
  • Python Selenium4.3.0(新语法) web自动化测试工具

    1 介绍 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等 这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够

    2024年01月24日
    浏览(52)
  • Selenium4.0 + Python手撸自动化框架系列之 Web截图 与 封装

    在做Web自动化时,网页截图是常用的操作。像一般的自动化框架与工具都会有截图机制,比如: 1、元素等待失败触发截图 2、元素操作失败触发截图 3、检查点失败触发截图 4、主动要求的触发截图 四种场景,均可触发网页截图操作,将截图保存到对应某个路径下面。 那么

    2024年02月08日
    浏览(72)
  • 浏览器常用基本操作之python3+selenium4自动化测试(基础篇)

    1、打开指定的网页地址 我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现 1 2 3 from selenium import webdriver driver = webdriver.Edge() driver.get( \\\'https://www.baidu.com/\\\' )   # 本行用于访问指定的地址 2、获取当前页面url 我们在

    2024年02月01日
    浏览(78)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包