selenium--单选下拉列表

下拉选择

from selenium import webdriver
from time import sleepdriver = 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 sleepdriver = 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 timeclass 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')# 找到所有的optionall_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 Selectclass 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].textprint(txt)# 断言当前选中的文本是否是西瓜self.assertEqual(txt, '西瓜')test1 = Test_SelectText()
test1.test_getSelectText()

结果:

桃子
6
西瓜

根据文本获取

from selenium import webdriver
import unittest
from selenium.webdriver.support.ui import Selectclass 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].textprint(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 Selectclass 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].textprint(txt)# 断言当前选中的文本是否是山楂self.assertEqual(txt, '山楂')test1 = Test_SelectText()
test1.test_getSelectText()

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

 

 

转载于:https://www.cnblogs.com/zouzou-busy/p/11070660.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab实现字符识别,字符识别 - MATLAB Simulink Example - MathWorks 中国

定义问题脚本 prprob 定义了一个包含 26 列的矩阵 X&#xff0c;每列对应一个字母。每列有 35 个值&#xff0c;值可能是 1&#xff0c;也可能是 0。每列(包含 35 个值)定义一个字母的 57 位图。矩阵 T 是一个 2626 的单位矩阵&#xff0c;它将 26 个输入向量映射到 26 个类。[…

python建立ip代理池_Python搭建代理IP池实现存储IP的方法

上一文写了如何从代理服务网站提取 IP&#xff0c;本文就讲解如何存储 IP&#xff0c;毕竟代理池还是要有一定量的 IP 数量才行。存储的方式有很多&#xff0c;直接一点的可以放在一个文本文件中&#xff0c;但操作起来不太灵活&#xff0c;而我选择的是 MySQL 数据库&#xff…

低秩矩阵分解 matlab,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼有四个文件&#xff1a;demo.mfunction [] demo()%This routine demonstrates an example of using LRR to do subspace segmentation. We cosntruct 5 independent subspaces, each of which has a rank of 10,%sample 200 point…

python深度神经网络算法_02.深度神经网络算法之Python基础与数据分析

资源内容&#xff1a;02.深度神经网络算法之Python基础与数据分析|____2016最新python基础篇视频教程22课|____Python学习手册(第4版).pdf|____Python程序入门与进阶|____基础篇01-福利课python先入为主上篇|____基础篇02-福利课python先入为主下篇|____基础篇03-虚拟机安装xub…

我们为什么要用MVC?ASP.NET MVC模式的优点?

1.关注点分离&#xff1a;每个功能最少会被切分为M-V-C三个部分&#xff0c;让开发者一次只需要关注一个部分&#xff0c;进而降低复杂难度&#xff0c;提高开发效率2.分层负责&#xff1a;明确切割&#xff0c;M-V-C三个部分并行开发3.自由操控HTML&#xff1a;在ASP.Net MVC中…

python 英语词频统计软件_Python实现统计英文文章词频的方法分析

本文实例讲述了Python实现统计英文文章词频的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;应用介绍&#xff1a;统计英文文章词频是很常见的需求&#xff0c;本文利用python实现。思路分析&#xff1a;1、把英文文章的每个单词放到列表里&#xff0c;并统计列表…

mysql磁盘无法挂载,linux – 无法挂载磁盘(VFS:找不到ext4文件系统)

试图挂载磁盘(硬件raid)但失败了.#mount -t ext4 /dev/sda /datamount: wrong fs type,bad option,bad superblock on /dev/sda,missing codepage or helper program,or other errorIn some cases useful info is found in syslog - trydmesg | tail or so#dmesg | tail -1EXT4…

程序中的内存分配

栈由操作系统自动分配释放 &#xff0c;用于存放函数的参数值、局部变量等&#xff0c;其操作方式类似于数据结构中的栈 1. 函数中定义的局部变量按照先后定义的顺序依次压入栈中,也就是说相邻变量的地址之间不会存在其它变量。 2. 栈的内存地址生长方向与堆相反&#xff0c;由…

python传中文参数_解决Python传递中文参数的问题

今天有个需要需要传递中文参数给URL但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误。烦的很。所以我们果断选择用urlencode来处理中文&#xff0c;由于国内外网站编码不同&#xff0c;国内是GBK的&#xff0c;国外是UTF8的。>>> import sys>>&…

数据结构php语言,PHP语言做网页开发,会用到什么数据结构,算法?

回复讨论(解决方案)这个要根据项目而定的&#xff0c;PHP做开发&#xff0c;首先得会html javascript不是 会用到什么数据结构&#xff0c;算法而是你将 什么数据结构&#xff0c;算法 用到网页开发中去这个要根据项目而定的&#xff0c;PHP做开发&#xff0c;首先得会html jav…

pythonpptx 楷体_python-pptx 实践 4:添加形状、文本

1、添加流程箭头#加载库importosfrom pptx importPresentationfrom pptx.util importInches, Ptfrom pptx.enum.text importPP_ALIGNfrom pptx.enum.shapes importMSO_SHAPEfrom pptx.dml.color importRGBColor#设置路径work_path rE:\pyspace\tmp\pptxos.chdir(work_path)#实…

C# DevExpress XtraMessageBox自定义字体,字体大小,自定义按钮大小,自定义Icon

1.使用XtraMessageBoxForm&#xff0c;自定义Icon 2.重写XtraMessageBoxForm&#xff0c;自定义消息字体&#xff0c;标题字体 3.注册XtraMessageBoxForm的Showing事件&#xff0c;自定义按钮字体及按钮大小 具体代码如下&#xff0c;只写了简单两种方法&#xff0c;可自己扩展…

php维护页面,php – Symfony2中的“维护网站”页面

我跟着这个tutorial.这非常简单直接.这是我所需要的.您只需更改参数然后清除prod缓存,您仍然可以在dev或测试环境中访问该应用程序.在你的parameters.yml中添加&#xff1a;parameters:maintenance: false #turn it to true to enable maintenanceunderMaintenanceUntil: tomor…

批处理结束某个进程_进程调度

当计算机系统是多道程序设计系统时&#xff0c;常常会出现多个进程或线程竞争CPU的情况。如果有大于处理器数的进程(线程)处于就绪态时&#xff0c;就必须要选择下一个要执行的进程(线程)。在操作系统&#xff0c;用于选择接下来要执行的进程的程序称之为调度程序(Scheduler)&a…

[RN] 可播放视频的播放器版本

可播放视频的播放器版本 "react": "16.6.3", "react-native": "0.57.8", "react-native-orientation": "^3.1.0", "react-native-vector-icons": "^4.3.0", "react-native-video":…

有限元python编程流行吗_Python进行有限元分析

本博客主要是来讲述采用Python语言&#xff0c;利用直接刚度法&#xff0c;来编写求解《有限元方法基础教程》(第五版) 的例题2.1。(也许有的人认为商业软件已经和普及了&#xff0c;没有 必要再自己进行编程了&#xff0c;但是龙猪在这里建议大家还是去了解一下有限元的原理&a…

java用中根后根序列构造二叉树,106. 从中序与后序遍历序列构造二叉树

题目描述根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。示例&#xff1a;例如&#xff0c;给出中序遍历 inorder [9,3,15,20,7]后序遍历 postorder [9,15,7,20,3]返回如下的二叉树&#xff1a;3/ \9 20/ \15 7思路1.思路与105. 从前序与中序…

Python_selenium之获取当前页面的href属性,id属性,图片信息和截全屏

一、 获取当前页面的全部信息 1. 图片信息包括图片名称、图片大小等信息 2. 只需将图片信息打印出来&#xff08;image.text image.size image.tag_name&#xff09; 二、 获取页面元素的href属性&#xff08;id同理&#xff09; 1. 获取当前页面所有的链接信息&#xff0…

动态游标for循环_数据结构系列循环链表

前面留的一个问题,后文更跟新回答单链表可以表示任意的线性关系&#xff0c;有些线性关系是循环的&#xff0c;既没有队尾元素。将单链表中的终端结点指针端由空指针改为指向头结点&#xff0c;这时的单链表形成国恒一个环&#xff0c;改为循环链表。插入与删除与单链表的原理甚…

php对数组进行合成的函数,php合并数组函数array_merge()

array_merge()函数在php中是对数组进行合并的&#xff0c;可以把多个数组合成一个数组&#xff0c;并且不改变原数组的值了&#xff0c;但今天我在使用array_merge合并数组时碰到几个小细节上的问题&#xff0c;下面我举例子给各位朋友看看1.array_merge()合并$array array(a&…