下拉框是我们最常见的一种页面元素,对于一般的元素,我们只需要一次就定位,但下拉框里的内容需要进行两次定位,先定位到下拉框,再定位到下拉框内里的选项。

drop_down.html

<html><body><select id="ShippingMethod" onchange="updateShipping(options[selectedIndex]);" name="ShippingMethod"><option value="12.51">UPS Next Day Air ==> $12.51</option><option value="11.61">UPS Next Day Air Saver ==> $11.61</option><option value="10.69">UPS 3 Day Select ==> $10.69</option><option value="9.03">UPS 2nd Day Air ==> $9.03</option><option value="8.34">UPS Ground ==> $8.34</option><option value="9.25">USPS Priority Mail Insured ==> $9.25</option><option value="7.45">USPS Priority Mail ==> $7.45</option><option value="3.20" selected="">USPS First Class ==> $3.20</option></select></body></html>

将上面的代码保存成html通过浏览器打开会看到一个最简单常见的下拉框,下拉列表有几个选项。

现在我们来选择下拉列表里的$10.69

#-*-coding=utf-8from selenium import webdriverimport os,timedriver= webdriver.Firefox()file_path =  'file:///' + os.path.abspath('drop_down.html')driver.get(file_path)time.sleep(2)m=driver.find_element_by_id("ShippingMethod")m.find_element_by_xpath("//option[@value='10.69']").click()time.sleep(3)driver.quit()

解析:

首先要定位到下拉框的元素,然后选择下拉列表中的选项进行点击操作。

m=driver.find_element_by_id("ShippingMethod")

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

百度搜索设置下拉框操作范例:

#-*-coding=utf-8from selenium import webdriverimport os,timedriver= webdriver.Firefox()driver.get("http://www.baidu.com")#进入搜索设置页

driver.find_element_by_link_text("搜索设置").click()#设置每页搜索结果为100条

m=driver.find_element_by_name("NR")m.find_element_by_xpath("//option[@value='100']").click()time.sleep(2)#保存设置的信息

driver.find_element_by_xpath("//input[@value='保存设置']").click()time.sleep(2)driver.switch_to_alert().accept()#跳转到百度首页后,进行搜索表(一页应该显示100条结果)

driver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()time.sleep(3)driver.quit()

解析:

当我们在保存百度的设置时会会弹出一个确定按钮;我们并没按照常规的方法去定位弹窗上的“确定”按钮,而是使用:

driver.switch_to_alert().accept()

完成了操作,这是因为弹窗比较是一个具有唯一性的警告信息,所以可以用这种简便的方法处理。

–  switch_to_alert()

焦点集中到页面上的一个警告(提示)

– accept()
接受警告提示

python selenium --处理下拉框相关推荐

  1. 人生苦短,我学python之python+selenium select下拉框

    转载自上海悠悠的博客 一.认识select     1.打开百度-设置-搜索设置界面,如下图所示 2.箭头所指位置,就是select选项框,打开页面元素定位,下方红色框框区域,可以看到select标签 ...

  2. python selenium滚动条下拉操作汇总

    python selenium滚动条下拉操作汇总 1.js脚本直接操作(推荐) from selenium import webdriver from time import sleepbrowser ...

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

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

  4. selenium+python 遍历select下拉框获取value值

    遍历下拉框,获取value值 因为多次需要,所以写成类方法,方便调用 def is_option_value_present(self,element_id,tag_name,option_text) ...

  5. selenium2与python自动化6-select下拉框

    首先来认识一些select,在白百度搜索页面中 点击"搜索设置"按钮 箭头所指的即为select搜索框,使用firebug打开元素定位,select标签下有三个选项,这样首先通过s ...

  6. Selenium+java - 下拉框处理

    常见下拉框也分两种:一种是标准控件和非标准控件(一般为前端开发人员自己封装的下拉框),本篇文章中将重点讲解标准下拉框操作. 1.Select提供了三种选择某一项的方法 select.selectByI ...

  7. Selenium:下拉框操作

    下拉框 1.在Web网页中经常会遇到下拉框(下拉列表):比如说分页.每页显示的条数.语言的切换等功能,很多时候经常都是以下拉框的形式展现 2.下拉列表是网页中一种最节省页面空间的选择方式,默认状态下只 ...

  8. php selenium下拉列表,Selenium+java - 下拉框处理

    摘要: select">李白韩信典韦凯 常见下拉框也分两种:一种是标准控件和非标准控件(一般为前端开发人员自己封装的下拉框),本篇文章中将重点讲解标准下拉框操作. ueifinput( ...

  9. python choice添加下拉框_自定义Django Form中choicefield下拉菜单选取数据库内容实例...

    工作中遇到的问题,自定义了一个forms.form表单,某项需要作出下拉菜单,下拉菜单中的选项需要从数据库(objectForm models)中提取. form.py为: class objectF ...

最新文章

  1. Java NIO 选择器(Selector)的内部实现(poll epoll)
  2. hdu5033 最大仰望角
  3. Ogre 编辑器二(用Ogre的地形组件加载天龙八部地形)
  4. 如何更改计算机性能,如何修改注册表优化电脑性能 修改注册表优化电脑性能方法...
  5. DotNetCore 3.0 助力 WPF本地化
  6. cpu使用率_漫话性能:CPU使用率
  7. java伪代码生成器_JAVA单例模式的实现伪代码
  8. 「 强烈推荐」程序员必备14款GIF制作的工具
  9. 聊聊Ping命令的返回值Pong
  10. 没有产权证的车库能不能随时拆掉
  11. IOl数据流中的字节流
  12. 单片机硬件抗干扰常用方法
  13. 一个叫鲁迅的人,终于从教科书里滚了...
  14. php投影,使用 CSS 3 制作长投影
  15. 理解 LDA 主题模型
  16. 根据IP获取城市代码
  17. cocos2d-x 流星划过特效
  18. 原生JS实现轮播图 方法总结
  19. 地理空间技术改变世界的未来
  20. 麻醉设备监测仪解决方案,智能化医疗设备守护患者安全

热门文章

  1. 复习webpack的常用loader
  2. x86CPU 实模式 保护模式 傻傻分不清楚? 基于Xv6-OS 分析CR0 寄存器
  3. Javascript用递归的方式遍历json数组
  4. free -m 内存
  5. linux 给文件夹权限
  6. 关于DataAdapter的问题-----Fill: SelectCommand.Connection 属性尚未初始化。
  7. C++拷贝构造函数、深拷贝、浅拷贝
  8. 5G 行业专网 — 公有云上的 5G 专网
  9. EdgeGallery — Overview
  10. DRV8301的使用