在自动化中python对下拉框的处理网上相对实例比较少,其它前辈写的教程中对下拉也仅仅是相对与教程来说的,比如下面:

m=driver.find_element_by_id("ShippingMethod")
m.find_element_by_xpath("//option[@value='10.69']").click()

对下拉框后再进行属性定位的点击!

但在实际应用中,不可能通过value值来判断,一般都是通过当前显示的值来判断,所以教程只能教你入门,但应用还得靠自己。

废话少说,开始教程

一、典型的select option格式下接框

比如下面这样一段html代码,在实际自动化测试中不可能通过value值来判断,因为每次都得看value值,更多的时候是通过title值来判断的

<html>
<body><div class="menu_bar" style="margin: 0px 5px 0px 135px;"><div style="display: inline; "><form style="display:inline" name="productForm" action="lib/general/navBar.php" method="get"><input type='hidden' name='CSRFName' id='CSRFName' value='CSRFGuard_1522071984' /><input type='hidden' name='CSRFToken' id='CSRFToken' value='a1bd2844bf055061e48b4ed7a1400f5574030db73737bbdb356ec9ab3efa0cd9de4187f0a521f28f2b2a85574d01171c674d81cdcec7410e1cca36c31e7919c0' />测试产品<select style="font-size: 80%;position:relative; top:-1px;" name="testproject" οnchange="this.form.submit();"><option value="2" title="test1:某某某监控系统">test1:某某某监控系统</option><option value="12810" title="test2:某某能力平台">test2:某某能力平台</option><option value="1332" title="test3:某某财务系统">test3:某某财务系统</option><option value="12684" title="test4:公共平台">test4:公共平台</option><option value="1" title="test5:北京雾霾监控"selected="selected" >test5:北京雾霾监控</option><option value="31823" title="test6:QQ对接">test6:QQ对接</option><option value="32154" title="test7:南方都市报">test7:南方都市报</option><option value="1528" title="test8:联通平台">test8:联通平台/option><option value="944" title="test9:移动平台">test9:移动平台</option></select></form></div>
</body>
</html>

测试产品
test1:某某某监控系统test2:某某能力平台test3:某某财务系统test4:公共平台test5:北京雾霾监控test6:QQ对接test7:南方都市报test8:联通平台/option>test9:移动平台

例如我们要选择 test6:QQ对接  该如何选择呢,

方法一如下:

    #遍历下拉框并选择需要的项目select = browser.find_element_by_name("testproject")allOptions = select.find_elements_by_tag_name("option")for option in allOptions:print "Value is: " + option.get_attribute("value")print "Text is:" +option.textif 'test6' in option.text:option.click()break

也可用网上的方法二:

Select(driver.find_element_by_name("testproject")).select_by_visible_text("test6:QQ对接")

但方法二必需要将文本写全才对选择,如果写错那也不能选

二、用了bootstrap特效的dropdow下拉框

如下图中的下拉框

类型这种用下面这种方法:

browser.find_element_by_xpath("//div[contains(@class,'chosen-c')]").click()
time.sleep(1)lis=browser.find_elements_by_xpath("//ul[@class='chosen-results']/li")for li in lis:if "行业测试" in li.text:i.click()break
time.sleep(2)

也是通过获取元素对像list来遍历,得到想要的数据后就停止,这里注意

find_elements_by_xpath   是elements

三、我们在网上填写资料时,经常会遇到下面这种框

这种款,不能手工输入,输入后会不识别,是因为后台将值传换为对应的code,所以必须靠手工选,比如深圳出入境申请网页的选择,可以用如下方法:
provides=browser.find_elements(By.XPATH,"//div[starts-with(@class,'x-grid3-row')]")while True:if [ttd for ttd in provides if "江西" in ttd.text]:for ttd in provides:if "江西" in ttd.text:print 'Click OK'ttd.click()breakelse:continuebreakelse:browser.find_element_by_xpath("//button[starts-with(@class,'x-btn-text x-tbar-page-next')]").click()provides=browser.find_elements(By.XPATH,"//div[starts-with(@class,'x-grid3-row')]")print [provide.text for provide in provides][1]time.sleep(1)

将元素获取后再将值循环,如果值在内就跳出循环,如果值不在内,就点击下一页


总结:在实际自动化测试中page_object模式中,这就非常方例如将数据提取出来了

参考:http://www.bubuko.com/infodetail-1115484.html

转载于:https://www.cnblogs.com/thb-blog/p/7606922.html

python-下拉框处理相关推荐

  1. python下拉框二级联动_下拉列表框实现二级联动

    1 2 3 4 DOM解析cities 5 6 7 8 请选择...... 9 吉林省 10 辽宁省 11 山东省 12 13 14 请选择...... 15 16 17 window.οnlοad= ...

  2. python下拉框二级联动_怎么在Django 添加省市二级联动下拉列表?

    引用来自"Kinegratii"的评论 Lz就几行代码的事,哪用什么APP啊, 下个插件,jsAddress.js http://www.cnblogs.com/zjfree/ar ...

  3. python tk下拉列表的state_Python tkinter之ComboBox(下拉框)的使用简介

    1.ComboBox的基础属性 # -*- encoding=utf-8 -*- import tkinter from tkinter import * from tkinter import tt ...

  4. python爬取下拉列表数据_Python+selenium之获取文本值和下拉框选择数据

    Python+selenium之获取文本值和下拉框选择数据 一.结合实例进行描述 1. 实例如下所示: #新增标签操作 def func_labels(self): self.driver.find_ ...

  5. python selenium 下拉框 页面变化_python-selenium之select下拉框

    注意哦,这里的下拉框是select 属性,小伙伴们别看见下拉框就觉得是select 总结 select 选择:select_by_index()  :通过索引定位 select_by_value()  ...

  6. Python selenium定位动态下拉框

    Python selenium定位动态下拉框 1.下拉框元素需要点击控件才展示 这里可以使用XPAN定位到下拉框,使用driver.find_element(By.XPATH,"路径&quo ...

  7. python爬虫selenium操作下拉框详解

    使用python爬虫的selenium操作网页的下拉框. 以该网站为例:https://www.17sucai.com/pins/demo-show?id=5926 该网页下存在多个可供测试的下拉框. ...

  8. python获取select选中的值_Python3.x:遍历select下拉框获取value值

    Python3.x:遍历select下拉框获取value值 Select提供了三种选择方法: # 通过选项的顺序,第一个为 0 select_by_index(index) # 通过value属性 s ...

  9. 【Python与SEO】搜狗微信搜索下拉框词采集多线程/异步采集源码公布

    随意写了一下,更多可关注本渣渣微信公众号:二爷记!! 欢迎与本渣渣交流!!! 运行效果: 搜狗微信搜索下拉框词采集核心代码参考: #微信搜索下拉词采集 #首发:微信公众号:二爷记 #author:微信 ...

  10. selenium + python处理select标签下拉框的选项

    selenium + python处理select标签下拉框的选项 1. 背景 在爬取网页是,有时候我们会遇到下图中的下拉框,也就是< select > < /select > ...

最新文章

  1. 构建之法阅读笔记02
  2. Two Straws May Make a Perfect Diamond: Selecting Individually Weak Features for a Better Accuracy
  3. 在Eclipse中导入Java程序
  4. LeetCode Increasing Triplet Subsequence(动态规划)
  5. 团队-团队编程项目作业名称-需求分析;
  6. GitLab 安装笔记
  7. Python生成器(send,close,throw)方法详解
  8. DDR3布线的那些事儿(二)
  9. 《温故而知新》JAVA基础四
  10. oracle怎么按时间查找,JDBC:我如何在Oracle中按时间查询?
  11. PHP 连接MySQL数据库
  12. python坦克大战小游戏,打包为exe文件
  13. 计算机二级office树的知识,计算机二级office选择题白话串讲--二叉树,是什么树?(1)...
  14. Notepad++汉化教程
  15. k8s集群的搭建-云服务器
  16. mysql的驱动_注册驱动MySQL的驱动程序
  17. R语言 -- car::scatterplotmatrix散点图矩阵 参数详解
  18. 微信内置浏览器 非全屏播放视频解析
  19. 定时器、Lambda表达式、Stream流
  20. Xcode 常见 CLI 工具

热门文章

  1. webstorm的下载以及React环境搭建
  2. 你的邮件为何被标记为垃圾邮件?
  3. Apache - 403错误
  4. iOS中使用SFHFKeychainUtils保存用户密码
  5. shell脚本实例(随堂笔记)
  6. Mozilla推动互联网成为游戏发展的强有力平台
  7. H3C DHCP中继和RIP配置实验
  8. python的模块(module)和包(package)
  9. php 生成类,PHP静态文件生成类实例
  10. 复制粘贴之后出现问号怎么办_网页没办法复制粘贴?老司机传授这3招太赞了,全网任意免费复制...