首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件测试笔记|web自动化测试|下拉列表框处理

“动动小手,点点关注呗~”

年轻人最基本的就是:不怕穷,对财产也没有恭敬之心。他们发现(当然是不同程度的觉悟)如果要把未来掌握在自己手里,就得有系统地挑战社会体系和财富体系。 ——《我承认我不曾历经沧桑》

在Web自动化测试领域,下拉列表框是非常常见的UI元素之一。对于下拉列表框的处理,不仅考验着测试人员对自动化测试工具的掌握程度,更关系到测试用例的完整性和有效性。本文将以Selenium库结合Python语言为例,深入探讨Web自动化测试中下拉列表框的处理方法,内容涵盖多种场景,助你轻松应对复杂的下拉列表框测试需求。

一、环境准备

在开始编写代码之前,需要确保已经安装了Selenium库和浏览器驱动。以Chrome浏览器为例,需要下载对应版本的ChromeDriver,并将其所在路径添加到系统环境变量中。使用以下命令安装Selenium库:

二、基本下拉列表框处理

常见的下拉列表框使用<select>标签和多个<option>标签组合而成,对于这种标准的下拉列表框,Selenium提供了Select类来方便地进行操作。

代码示例

代码含义描述

1. 首先导入必要的库,webdriver用于控制浏览器,Select类用于处理下拉列表框,time库用于添加等待时间,确保页面元素加载完成。

2. 使用webdriver.Chrome()初始化Chrome浏览器驱动,并通过driver.get()方法打开目标网页。

3. 通过driver.find_element_by_id()方法定位到页面中的下拉列表框元素,这里使用id属性进行定位,实际应用中也可以使用其他定位方式,如name、class_name等。

4. 创建Select对象,将定位到的下拉列表框元素作为参数传入。

5. 使用select_by_index()方法,通过索引选择下拉列表框中的选项,索引从0开始,例如select_by_index(1)表示选择第二个选项。

6. select_by_value()方法根据选项的value属性值来选择对应的选项,value属性是<option>标签中的一个属性值。

7. select_by_visible_text()方法根据选项在页面中显示的文本内容来选择选项,这种方式更加直观,适合用户根据肉眼可见的文字进行选择的场景。

8. 通过first_selected_option属性获取当前选中的选项,并打印出其文本内容。

9. 最后使用driver.quit()方法关闭浏览器,释放资源。

运行结果

运行上述代码后,浏览器会打开指定网页,并依次按照索引、value值、可见文本的方式选择下拉列表框中的选项,每次选择后会等待2秒,最后打印出当前选中的选项文本内容。

三、非标准下拉列表框处理

在实际项目中,很多下拉列表框并不是标准的<select>和<option>结构,可能是通过<div>、<ul>、<li>等元素组合模拟出来的下拉效果,对于这种非标准的下拉列表框,就不能使用Select类,而是需要通过常规的元素定位和操作方法来处理。

代码示例

代码含义描述

1. 同样先导入相关库,初始化浏览器驱动并打开目标网页。

2. 首先定位到下拉列表框的触发元素,这个元素通常是用于打开下拉列表的按钮或者显示当前选中内容的区域,这里使用xpath定位方式,实际项目中需要根据页面结构准确编写xpath表达式。

3. 点击触发元素,打开下拉列表,通过dropdown_trigger.click()实现。

4. 等待2秒,确保下拉列表完全展开。

5. 使用driver.find_elements_by_xpath()方法定位到下拉列表框中所有的选项,这里获取到的是一个元素列表。

6. 遍历选项列表,通过比较每个选项的文本内容,找到目标选项并点击。

7. 再次等待2秒,确保操作生效。

8. 最后关闭浏览器。

运行结果

运行代码后,浏览器会打开指定网页,点击下拉列表框的触发元素,展开下拉列表,然后在列表中找到目标选项并点击,整个过程中每次操作后等待2秒,最后关闭浏览器。

四、动态加载下拉列表框处理

当页面中的下拉列表框是通过AJAX等技术动态加载内容时,直接按照常规方式定位和操作可能会失败,因为在代码执行时,下拉列表框的内容可能还未加载完成。此时需要使用显式等待来确保元素可操作。

代码示例

代码含义描述

1. 导入必要的库,除了之前用到的库,还导入了用于显式等待的相关类。

2. 初始化浏览器驱动并打开目标网页,点击下拉列表框的触发元素打开下拉列表。

3. 创建WebDriverWait对象,设置最长等待时间为10秒。

4. 使用wait.until()方法结合EC.presence_of_all_elements_located()条件,等待下拉列表框中的所有选项元素加载到页面中。只有当这些元素都出现在DOM中时,代码才会继续执行。

5. 遍历选项列表,找到目标选项并点击。

6. 最后关闭浏览器。

运行结果

运行代码后,浏览器打开网页并点击下拉列表触发元素,在等待过程中,如果10秒内下拉列表选项加载完成,就会继续执行后续操作,找到目标选项并点击,否则会抛出超时异常。成功点击选项后关闭浏览器。

通过以上对不同类型下拉列表框处理方法的详细介绍和代码示例,相信你已经掌握了Web自动化测试中下拉列表框处理的核心技巧。在实际项目中,根据具体的页面结构和需求,灵活运用这些方法,能够高效、准确地完成下拉列表框相关的测试任务,提升Web自动化测试的质量和效率。

“动动小手,点点关注呗~”🫰

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OfQ-cGkpjQM3kn5N8i9F1o7Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券