下拉选择

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

通过Select类定位

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

栗子;

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

结果:

  1. 选项显示的文本: 桃子
  2. 选项值为: taozi
  3. 选项显示的文本: 西瓜
  4. 选项值为: xigua
  5. 选项显示的文本: 橘子
  6. 选项值为: juzi
  7. 选项显示的文本: 猕猴桃
  8. 选项值为: mihoutao
  9. 选项显示的文本: 山楂
  10. 选项值为: shanzha
  11. 选项显示的文本: 荔枝
  12. 选项值为: lizhi

通过索引定位

  1. from selenium import webdriver
  2. import unittest
  3. from selenium.webdriver.support.ui import Select
  4.  
  5. class Test_SelectText(unittest.TestCase):
  6. def test_getSelectText(self):
  7.  
  8. url = '01.html'
  9. self.driver = webdriver.Chrome()
  10. self.driver.get(url)
  11. # 使用xpath定位方式获取select页面元素对象
  12. select_element = Select(self.driver.find_element_by_xpath('//select'))
  13. # 打印默认选中项的文本
  14. print(select_element.first_selected_option.text)
  15. # 获取所有选择项的页面元素对象
  16. all_options = select_element.options
  17. # 打印选项总个数
  18. print(len(all_options))
  19. if all_options[1].is_enabled() and not all_options[1].is_selected():
  20. # 通过序号选中第二个元素,序号从0开始
  21. select_element.select_by_index(1)
  22. # 打印已选中的文本
  23. txt = select_element.all_selected_options[0].text
  24. print(txt)
  25. # 断言当前选中的文本是否是西瓜
  26. self.assertEqual(txt, '西瓜')
  27.  
  28. test1 = Test_SelectText()
  29. test1.test_getSelectText()

结果:

  1. 桃子
  2. 6
  3. 西瓜

根据文本获取

  1. from selenium import webdriver
  2. import unittest
  3. from selenium.webdriver.support.ui import Select
  4.  
  5. class Test_SelectText(unittest.TestCase):
  6. def test_getSelectText(self):
  7. url = '01.html'
  8. self.driver = webdriver.Chrome()
  9. self.driver.get(url)
  10. # 使用xpath定位方式获取select页面元素对象
  11. select_element = Select(self.driver.find_element_by_xpath('//select'))
  12. # 打印默认选中项的文本
  13. print(select_element.first_selected_option.text)
  14. # 获取所有选择项的页面元素对象
  15. all_options = select_element.options
  16. # 打印选项总个数
  17. print(len(all_options))
  18. select_element.select_by_visible_text('猕猴桃')
  19. txt = select_element.all_selected_options[0].text
  20. print(txt)
  21. # 断言当前选中的文本是否是猕猴桃
  22. self.assertEqual(txt, '猕猴桃')
  23.  
  24. test1 = Test_SelectText()
  25. test1.test_getSelectText()

结果:

  1. 桃子
  2. 6
  3. 猕猴桃

根据value

  1. from selenium import webdriver
  2. import unittest
  3. import time
  4. from selenium.webdriver.support.ui import Select
  5.  
  6. class Test_SelectText(unittest.TestCase):
  7. def test_getSelectText(self):
  8. url = '01.html'
  9. self.driver = webdriver.Chrome()
  10. self.driver.get(url)
  11. # 使用xpath定位方式获取select页面元素对象
  12. select_element = Select(self.driver.find_element_by_xpath('//select'))
  13. # 打印默认选中项的文本
  14. print(select_element.first_selected_option.text)
  15. # 获取所有选择项的页面元素对象
  16. all_options = select_element.options
  17. # 打印选项总个数
  18. print(len(all_options))
  19. select_element.select_by_value('shanzha')
  20. txt = select_element.all_selected_options[0].text
  21. print(txt)
  22. # 断言当前选中的文本是否是山楂
  23. self.assertEqual(txt, '山楂')
  24.  
  25. test1 = Test_SelectText()
  26. 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. Linux 安装Redis4.0.8【yum安装】

    .下载yum源 yum install epel-release2.安装redisyum install redis3.启动redis # 启动redis service redis start # ...

  2. pod的yaml例子

    apiVersion: apps/v1beta2 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selecto ...

  3. Blockstack: A Global Naming and Storage System Secured by Blockchains

    作者:Muneeb Ali, Jude Nelson, Ryan Shea, and Michael Freedman Blockstack Labs and Princeton University ...

  4. .Net Core 学习路线图

    今天看  草根专栏 这位大牛的微信公众号,上面分享了一张来自github的.net core学习路线图,贴在这里,好让自己学习有个方向,这么一大页竟然只是初级到高级的,我的个乖乖,太恐怖了. 感谢大牛 ...

  5. PIE SDK影像快速拼接

    1.算法功能简介 快速拼接是对若干幅互为邻接的遥感数字图像拼在一起,构成一幅整体影像的技术过程.PIE支持快速拼接算法功能的执行,下面对快速拼接算法功能进行介绍. 2.算法功能实现说明 2.1 实现步 ...

  6. 浅谈Spring中JDK动态代理与CGLIB动态代理

    前言Spring是Java程序员基本不可能绕开的一个框架,它的核心思想是IOC(控制反转)和AOP(面向切面编程).在Spring中这两个核心思想都是基于设计模式实现的,IOC思想的实现基于工厂模式, ...

  7. powershell ssh-agent 无法工作

    windows 10的powershell已经支持open-ssh的功能. 但是运行get-service ssh-agent似乎显示的stopped. 如下: PS C:\WINDOWS\syste ...

  8. Unity3D协程(转)

    这篇文章转自:http://blog.csdn.net/huang9012/article/details/38492937 协程介绍 在Unity中,协程(Coroutines)的形式是我最喜欢的功 ...

  9. 被严重误会?APS系统没有想象的那么复杂

    APS的出现要从90年代了,但到现在,很多行业内的顾问或用户提到APS都马上想到的是“要求很精确”“难度很大”“脱离实际”“太理想化”“工作量太大”等等,然后把它束之高阁不睬. 在这里,给大家分析一下 ...

  10. 周黑鸭借力MES,推进智能生产

    1.项目背景介绍 中国食品企业在经过了一些年的行业整体快速增长后,国家对食品行业的管理提出了更加严格的要求,控制更严,准入门槛提高,企业数量成下降趋势. 大中型食品企业已经需要走出国门,走向国际市场, ...