selenium--单选下拉列表

简介: selenium--单选下拉列表

下拉选择


from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("https://www.xxxxx.com/")
sleep(2)
driver.find_elements_by_tag_name('option')[2].click()
# 通过标签名定位到 option 标签,选择第三个,第一个下标为 0
driver.find_element_by_css_selector("[value='3']").click()
# 通过 css 定位属性定位


通过Select类定位


# 通过Select类定位
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from time import sleep
driver = webdriver.Chrome()
driver.get("http:\\www.xxxx.com")
select = Select(driver.find_element_by_css_selector("[name='CookieDate']"))
# 定位到所有的选项列表
select.select_by_index('1')  # 根据索引定位,从 0 开始
sleep(2)
select.select_by_visible_text("一年")
# 根据看的见的文本定位
select.select_by_value('3')  # 根据 value 值定位
sleep(2)
driver.quit()


栗子;

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>下拉框</title>
</head>
<body>
    <select name="fruit" size="1">
        <option id="peach" value="taozi">桃子</option>
        <option id="watermelon" value="xigua">西瓜</option>
        <option id="orange" value="juzi">橘子</option>
        <option id="kiwifruit" value="mihoutao">猕猴桃</option>
        <option id="matbush" value="shanzha">山楂</option>
        <option id="litchi" value="lizhi">荔枝</option>
    </select>
</body>
</html>
遍历所有选项并打印选项显示的文本和选项值
from selenium import webdriver
import unittest
import time
class Test_SelectText(unittest.TestCase):
    def test_getSelectText(self):
        url = '01.html'
        self.driver = webdriver.Chrome()
        self.driver.get(url)
        # 找到下拉框
        select = self.driver.find_element_by_name('fruit')
        # 找到所有的option
        all_options = select.find_elements_by_tag_name('option')
        for option in all_options:
            print('选项显示的文本:', option.text)
            print('选项值为:', option.get_attribute("value"))
            # 找到一个选择一个
            option.click()
            time.sleep(2)
test1 = Test_SelectText()
test1.test_getSelectText()

结果:

选项显示的文本: 桃子
选项值为: taozi
选项显示的文本: 西瓜
选项值为: xigua
选项显示的文本: 橘子
选项值为: juzi
选项显示的文本: 猕猴桃
选项值为: mihoutao
选项显示的文本: 山楂
选项值为: shanzha
选项显示的文本: 荔枝
选项值为: lizhi


通过索引定位


from selenium import webdriver
import unittest
from selenium.webdriver.support.ui import Select
class Test_SelectText(unittest.TestCase):
    def test_getSelectText(self):
        url = '01.html'
        self.driver = webdriver.Chrome()
        self.driver.get(url)
        # 使用xpath定位方式获取select页面元素对象
        select_element = Select(self.driver.find_element_by_xpath('//select'))
        # 打印默认选中项的文本
        print(select_element.first_selected_option.text)
        # 获取所有选择项的页面元素对象
        all_options = select_element.options
        # 打印选项总个数
        print(len(all_options))
        if all_options[1].is_enabled() and not all_options[1].is_selected():
            # 通过序号选中第二个元素,序号从0开始
            select_element.select_by_index(1)
            # 打印已选中的文本
        txt = select_element.all_selected_options[0].text
        print(txt)
        # 断言当前选中的文本是否是西瓜
        self.assertEqual(txt, '西瓜')
test1 = Test_SelectText()
test1.test_getSelectText()


结果:


桃子
6
西瓜


from selenium import webdriver
import unittest
from selenium.webdriver.support.ui import Select
class Test_SelectText(unittest.TestCase):
    def test_getSelectText(self):
        url = '01.html'
        self.driver = webdriver.Chrome()
        self.driver.get(url)
        # 使用xpath定位方式获取select页面元素对象
        select_element = Select(self.driver.find_element_by_xpath('//select'))
        # 打印默认选中项的文本
        print(select_element.first_selected_option.text)
        # 获取所有选择项的页面元素对象
        all_options = select_element.options
        # 打印选项总个数
        print(len(all_options))
        select_element.select_by_visible_text('猕猴桃')
        txt = select_element.all_selected_options[0].text
        print(txt)
        # 断言当前选中的文本是否是猕猴桃
        self.assertEqual(txt, '猕猴桃')
test1 = Test_SelectText()
test1.test_getSelectText()

结果:

桃子
6
猕猴桃


根据value


from selenium import webdriver
import unittest
import time
from selenium.webdriver.support.ui import Select
class Test_SelectText(unittest.TestCase):
    def test_getSelectText(self):
        url = '01.html'
        self.driver = webdriver.Chrome()
        self.driver.get(url)
        # 使用xpath定位方式获取select页面元素对象
        select_element = Select(self.driver.find_element_by_xpath('//select'))
        # 打印默认选中项的文本
        print(select_element.first_selected_option.text)
        # 获取所有选择项的页面元素对象
        all_options = select_element.options
        # 打印选项总个数
        print(len(all_options))
        select_element.select_by_value('shanzha')
        txt = select_element.all_selected_options[0].text
        print(txt)
        # 断言当前选中的文本是否是山楂
        self.assertEqual(txt, '山楂')
test1 = Test_SelectText()
test1.test_getSelectText()

select_element.all_selected_options属性获取的是所有被选中项的对象组成的列表对象


相关文章
|
6月前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(&lt;https://www.sojump.com/m/2792226.aspx/&gt;)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
67 0
|
6月前
|
存储 前端开发 测试技术
《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
【4月更文挑战第27天】本文介绍了使用Java+Selenium进行Web自动化测试时,如何遍历和操作多选按钮的方法。文章分为两个部分,首先是一个本地HTML页面的示例,展示了多选按钮的HTML代码和页面效果,并详细解释了遍历多选按钮的思路:找到所有多选按钮的共同点,通过定位这些元素并放入list容器中,然后使用for循环遍历并操作。 第二部分介绍了在JQueryUI网站上的实战,给出了被测网址,展示了代码设计,同样使用了findElements()方法获取所有多选按钮并存储到list中,然后遍历并进行点击操作。最后,文章对整个过程进行了小结,并推荐了作者的其他自动化测试教程资源。
62 0
|
6月前
|
前端开发 测试技术 Python
《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
【4月更文挑战第25天】本文介绍了自动化测试中如何处理单选和多选按钮的操作,包括它们的定义、HTML代码示例以及如何判断和操作这些元素。文章通过一个简单的HTML页面展示了单选和多选框的示例,并提供了Java+Selenium实现的代码示例,演示了如何检查单选框是否选中以及如何进行全选操作。
72 0
|
1月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
97 5
|
1月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
1月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
238 5
|
1月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
14天前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
11 0
|
1月前
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
245 1
|
1月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。

热门文章

最新文章