selenium自动化元素定位之下拉列表框

这篇具有很好参考价值的文章主要介绍了selenium自动化元素定位之下拉列表框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、查看被测应用元素信息

二、Select的下拉框怎么定位

其思路也是获取下拉的选项框,循环遍历寻找匹配的index,找到便设置成选中属性

三、非select的下拉框如何定位?


 在编写webUI自动化过程中,有些元素的定位,不能直接通过id、name等快速定位到。这些特殊的元素定位就需要我们了解和学习解决方案,例如下拉框、radio/checkbox等。本文一起来了解一下,下拉列表框该定位。

一、查看被测应用元素信息

被测应用如图,禅道的添加用户页面,有一个部门的选项,是下拉列表框,这种类型的如何定位呢?

selenium下拉框定位方法,测试技术,自动化,selenium

二、Select的下拉框怎么定位

 F12打开控制,点击具体的元素,看到它的属性

selenium下拉框定位方法,测试技术,自动化,selenium

select标签,name和id都是'dept' ,试试如下定位fang

s1= Select(driver.find_element(By.ID,'dept'))
s1.selec_by_index(1)

也可以封装成一个方法

    def select_by_index(self, By, by_value, index):
        """
        根据index进行选择
        by      定位方式
        by_value   定位值
        index      下标
        """
        select = self.driver.find_element(By, by_value)
        depts = Select(select)
        depts.select_by_index(index)

其中select_by_index是selenium自有方法源码,可直接调用,如下是源码信息

    
def select_by_index(self, index):
        """Select the option at the given index. This is done by examining the
        "index" attribute of an element, and not merely by counting.

        :Args:
         - index - The option at this index will be selected

        throws NoSuchElementException If there is no option with specified index in SELECT
        """
        match = str(index)
        for opt in self.options:
            if opt.get_attribute("index") == match:
                self._set_selected(opt)
                return
        raise NoSuchElementException(f"Could not locate element with index {index}")

其思路也是获取下拉的选项框,循环遍历寻找匹配的index,找到便设置成选中属性

三、非select的下拉框如何定位?

实际情况,有用input标签的下拉框功能,怎么定位呢?如下图

selenium下拉框定位方法,测试技术,自动化,selenium

只能通过模拟人手动点的方式触发事件

非select的下拉框可以通过以下方式抓取元素:

  1. 使用click()方法模拟用户点击下拉框,展开下拉选项。
  2. 使用find_elements_by_xpath()方法定位所有下拉选项的元素并存储到一个列表中。
  3. 遍历下拉选项列表,找到目标选项,并使用click()方法点击它。
  4. 如果需要输入内容,可以获取下拉框的input元素进行操作。

示例代码:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

# 定位下拉框并点击展开
dropdown = driver.find_element_by_xpath('//input[@name="wd"]')
dropdown.click()

# 定位下拉选项并点击目标选项
options = driver.find_elements_by_xpath('//ul[@class="sug"]/li')
for option in options:
    if option.text == "Selenium":
        option.click()
        break

# 获取下拉框的input元素并输入内容(可选)
input_box = driver.find_element_by_xpath('//input[@name="wd"]')
input_box.send_keys("使用Selenium进行自动化测试")

其实也是仿写了上面selenium的select_by_index 思路循环遍历,只是先要通过click方法触发一下options的展示。

四、思考

我们在学习selenium UI自动化过程中,可以多去看源码,看看官方的解决思路是怎么样的,多看多实践,有些也可以为我所用。文章来源地址https://www.toymoban.com/news/detail-666750.html

到了这里,关于selenium自动化元素定位之下拉列表框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python-爬虫、自动化(selenium,动态网页翻页,模拟搜索,下拉列表选择、selenium行为链)

    selenium是一个Web自动化测试工具,可以直接运行在浏览器上·支持所有主流的浏览器.可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,基础页面截图等。 使用pip install selenium命令下载selenium模块。 运行下列代码: 说明没有下载对应浏览器的驱动,这里使用谷歌

    2024年02月01日
    浏览(71)
  • Web自动化 —— Selenium元素定位与防踩坑

    2. 基本元素定位二 3. CSS选择器定位法一 4. CSS选择器定位法二 浏览器完整的打开-关闭调用流程 5. xpath定位法 1、相对路径定位 //标签名[@属性名=\\\"属性值\\\"] 2、定位某个元素的父级元素 元素xpath/parent::\\\"父级元素标签名\\\" //*[@id=\\\"list\\\"]/dl/a/parent::dl 3、定位一组元素的第几个 xpath[数字

    2024年02月09日
    浏览(45)
  • Selenium自动化实现高亮显示定位到的元素

    在调试Selenium脚本中,有时因为操作太快或操作不明显而不清楚是否定位到了正确的元素。我们可用通过执行js为定位到的元素添加样式,来高亮显示定位到的元素。 在Selenim Webdriver中,可以通过driver.exectue_scirpt() 执行JavaScript代码,执行的JavaScript代码是支持传入参数的,甚至

    2024年02月20日
    浏览(44)
  • 【selenium自动化测试】如何定位页面元素,及对页面元素的操作方法

    selenium元素定位 ​selenium定位元素的方式有8种。 fild_element(by,value):by表示使用的定位方式,定位方式可以参见By类。value表示值,例如:根据id定位 By.ID,value=id属性的值。该方法返回元素对象,返回值如下: 这个返回结果说明:返回值为WebElement类的对象,元素在使用方法时

    2024年02月10日
    浏览(68)
  • 【UI自动化】selenium元素定位各种框实例操作大全

    Text: 元素是input标签但是不能输入内容 第五个input输入框, disabled 属性被设置为 \\\"true\\\" 。 它被禁用了无法接收用户的输入。 第六个input输入框, readonly 属性指示该元素是否只读 ,如果设置了该属性,表示该元素只读不可编辑。因此,当 readonly 属性存在时,该输入框是不可

    2024年01月18日
    浏览(54)
  • 【selenium模块-WEB自动化】八大网页元素定位方法(三)

    一、id 定位 标签的 id 具有唯一性,就像人的身份证。 二、name 定位 name 指定标签的名称,在页面中可以不唯一。 三、class 定位 class 指定标签的类名,在页面中可以不唯一。 四、tag 定位 每个 tag 往往用来定义一类功能,所以通过 tag 来识别某个元素的成功率很低,每个页面

    2024年02月15日
    浏览(51)
  • Python+selenium自动化八大元素定位方法及实例(超详细)

    目录 一、selenium模块中的find_element_by_id方法无法使用 二、Python+selenium自动化八大元素定位方法 使用场景: 1、通过id属性定位:driver.find_element(By.ID,\\\"value\\\") 2、通过name属性定位:driver.find_element(By.NAME,\\\"value\\\") 3、通过class属性定位:driver.find_element(By.CLASS_NAME,\\\"value\\\") 4、通过tag_name属

    2024年02月19日
    浏览(49)
  • 自动化测试学习(六)-selenium定位元素之CSS选择器详细用法

    目录 1.通过class属性定位 2.通过id属性定位 3.通过标签名定位 4.其他方法定位    CSS是一种语言,它可以比较灵活的选择控件的任意属性,一般情况下比Xpath快,下面我们详细介绍CSS的用法。CSS常见语法如下表所示:  选择器 示例 描述 .class .s_ipt 选择class=\\\"s_ipt\\\"的所有元素 #i

    2024年01月17日
    浏览(52)
  • Selenium元素定位全攻略,让你轻松玩转自动化测试!

    一、什么是元素定位 元素定位就是查找HTML元素的过程,操作页面元素之前,首先要对元素进行定位,所以定位是自动化脚本编写的开始。 通常使用find_element或find_elements方法来定位元素(find_element 使用给定的方法定位和查找一个元素;find_elements 使用给定的方法定位和查找所

    2024年02月04日
    浏览(46)
  • python+selenium的web自动化测试之8种元素定位方式详解

    目录 前言 单一属性定位 通过元素的id 通过元素的name 通过元素的class 通过元素的标签名 通过元素的超链接文本 通过元素的部分超链接文本 XPTH定位 CSS定位 辅助定位工具 ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确

    2023年04月16日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包