下拉选择

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('') # 根据索引定位,从 0 开始
sleep(2)
select.select_by_visible_text("一年")
# 根据看的见的文本定位
select.select_by_value('') # 根据 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属性获取的是所有被选中项的对象组成的列表对象

selenium--单选下拉列表的更多相关文章

  1. 自动化测试基础篇--Selenium单选框(Radio)复选框(CheckBox)

    摘自:https://www.cnblogs.com/sanzangTst/p/7686602.html 一.什么是单选框.复选框? 二.单选框:radio 三.复选框:checkbox 四.判断是否 ...

  2. 自动化测试-15.selenium单选框与复选框状态判断

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...

  3. 小物件之select单选下拉列表

    有时候在控制器中做了一个数组 然后需要在模板view中循环 同时还需要判断是否有选中的值,就会造成很多开始闭合标签 以前都是这样写 这样实在太繁琐了,不如封装一个小物件 封装函数如下: 代码如下: f ...

  4. Python3 Selenium自动化web测试 ==> 第三节 常用WebDriver API使用示例上(24个API)

    前置步骤: 安装selenium,chrome驱动,Python3.6 学习目的: 常见API的使用 涉及的API: step1: 访问一个网址 step2: 网页的前进和后退 step3: 刷新当前 ...

  5. Selenium WebDriver 常用API

    public class Demo1 { WebDriver driver; @BeforeMethod public void visit(){ //webdriver对象的声明 System.se ...

  6. Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}

    之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日 ...

  7. Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select

    此文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,对下拉列表框 Select 的操作. 下拉列表是 Web UI 自动化测试过程中使用率非常高的,通常有两种形式的下拉列表,一 ...

  8. selenium常用API实例

    1.访问网页地址 driver.get( url ); driver.navigate( ).to( url ); 2.访问网页前进.后退 driver.navigate( ).forward( ); ...

  9. selenium面试题

    selenium中如何判断元素是否存在? selenium中没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断. # 判断元素是否存在 try: dr.find_elem ...

  10. python+selenium面试题

    selenium中如何判断元素是否存在? selenium中没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断. # 判断元素是否存在 try: dr.find_elem ...

随机推荐

  1. oracle数据库表约束、视图、索引—该记录为本人以前微博的文章

    一.Oracle 数据库常用操作续关于创建表时创建约束1.创建表的时候增加约束----约束是定义表中的数据应该遵循的规则或者满足的条件----约束是建立在列上的,让某一列或者某几列数据之间有约束--- ...

  2. NFS客户端挂载失败之authenticated unmount request from

    1.故障现象 客户端挂载时夯住,无反应,无报错,如下图: 2.故障前对挂载目录的操作 发现故障前挂载目录被误删除,后通过备份分为恢复 3.故障排查步骤 .检查客户端及服务端防火墙规则 .检查selin ...

  3. Java学习:注解简介

    JAVA 注解的基本原理 以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高. 于是就有人提出来一种标记 ...

  4. Redis(二)特性和学习路线

    Redis是高效的内存数据库或者说缓存.对多种数据结构都支持,每种数据结构都有相应的应用场景. 特性 Redis支持非常多的特性,从用途.性能.高可用.数据安全方面都提供了相应的支持和保障. Redi ...

  5. WebService--导出excel并将excel发送到邮箱

    1.利用NPOI生成EXCEL 2.导出excel之后发送邮件 //导出excel //path :保存路径 //dt:要导出的数据 public static bool DataTableToExc ...

  6. C# VB .NET生成条形码,支持多种格式类型

    条形码简单,方便印刷,因此在各个领域得到了广泛的应用.我们自己的项目里也可以将一些特定的数据以条形码的方式来展示和应用,实现一码走天下.那么如何在C#,.Net平台代码里生成条形码呢?答案是使用Sha ...

  7. C# abstract class Interface的介绍

    1.基本概念介绍 抽象类: 1.抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 2.抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 3.具体 ...

  8. Gin-Go学习笔记二:Gin-Web框架

    Gin-Web框架 1>     首先声明,这个是我自己搭建的纯Gin-Web框架,其中有借鉴学习别的想法和代码.已上传到GitHub上.地址为: https://github.com/weiy ...

  9. Semaphore的简介及应用场景

    Semaphore是一个计数信号量,常用于限制可以访问某些资源(物理或逻辑的)线程数目. 常用函数: 信号量的构造函数 非公平: public Semaphore(int permits);//per ...

  10. python打印带颜色字体

    设置颜色开始 :\033[显示方式;前景色;背景色m 前景色 背景色 颜色 30 40 黑色 31 41 红色 32 42 绿色 33 43 黃色 34 44 蓝色 35 45 紫红色 36 46 青 ...