本节重点

处理下拉框

switch_to_alert()

accept()

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

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-8

from selenium import webdriver

import os,time

driver= 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()

解析:

这里可能和之前的操作有所不同,首先要定位到下拉框的元素,然后选择下拉列表中的选项进行点击操作。

查看本栏目更多精彩内容:http://www.bianceng.cn/Programming/extra/

m=driver.find_element_by_id("ShippingMethod")

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

百度搜索设置下拉框操作

#-*-coding=utf-8

from selenium import webdriver

import os,time

driver= 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()
接受警告提示

selenium-webdriver(python) (十) 如何处理下拉框的更多相关文章

  1. python webdriver中对不同下拉框通过文本值的选择

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

  2. Python + Selenium 定位非selected型下拉框的方法

    最近在尝试给自己负责的模块写UI自动化的Demo 登录及切换页面比较顺利 但是遇到下拉框的选择时,遇到了一点困难 我负责的模块页面的下拉框并非Select类型,无法使用select_by_index ...

  3. selenium处理select标签的下拉框

    有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select  ...

  4. Selenium2+python自动化15-select下拉框

    前言 最近由于工作原因,更新慢了一点,今天终于抽出一点时间给大家继续更新selenium系列,学习的脚本不能停止,希望小伙伴能多多支持. 本篇以百度设置下拉选项框为案例,详细介绍select下拉框相关 ...

  5. selenium操作隐藏的元素 (下拉框类型)

    有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: Python 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操 ...

  6. Selenium实战总结(webwiew下拉框定位)

    基于常见的两种下拉框的展示形式: 1.点击弹出下拉框: 2.鼠标移动弹出下拉框(move_to_element) 实例一[鼠标点击弹出的下拉框]: e.g百度首页的设置--高级搜索--时间: 导包: ...

  7. Selenium2+python自动化15-select下拉框【转载】

    前言最近由于工作原因,更新慢了一点,今天终于抽出一点时间给大家继续更新selenium系列,学习的脚本不能停止,希望小伙伴能多多支持. 本篇以百度设置下拉选项框为案例,详细介绍select下拉框相关的 ...

  8. Selenium: 利用select模块操作下拉框

    在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作... 首先导入Select模块: ...

  9. selenium测试(Java)--下拉框(二十一)

    例子: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...

随机推荐

  1. IIS Express 及 vs2008下使用IIS Express

    介绍 IIS Express 开发 ASP.NET 的应用程序是我的主要工作.当然我会选择最适合的开发环境.客户多属于企业用户,我的开发的选择,多半是 ASP.NET Web Application ...

  2. display:inline-block引发的间隙问题解决办法

    在网页布局中我们经常会用到display:inline-block;好处是:能够将块状元素按照内联元素的方式布局,同时能设置宽高.个人感觉很好用,可是用多了慢慢的问题就来了? 1.display:in ...

  3. mydate97时间控件最大值最小值限制及Javascript日期判断大小

    <script language="javascript" type="text/javascript" src="<%=basePath ...

  4. poj 3684

    Physics Experiment Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 784   Accepted: 266 ...

  5. HTML5 webSQL

    https://www.ibm.com/developerworks/cn/web/1108_zhaifeng_websqldb/   <!DOCTYPE HTML> <html&g ...

  6. Android 内存剖析 – 发现潜在问题

    简介 移动平台上的开发和内存管理紧密相关.尽管随着科技的进步,现今移动设备上的内存大小已经达到了低端桌面设备的水平,但是现今开发的应用程序对内存的需求也在同步增长.主要问题出在设备的屏幕尺寸上-分辨率 ...

  7. Win7系统配置IIS7服务

    1.开启IIS7服务 打开控制面板,选择并进入“程序”,双击“打开或关闭Windows服务”,在弹出的窗口中选择“Internet信息服务”下面所有地选项,点击确定后,开始更新服务. 2.安装web文 ...

  8. CodeIgniter 错误: In order to use the Session class you are required to set an encryption key

    CodeIgniter SESSION  第一次用 session 遇到这个错误 , 说是要加一个密钥才可以使用,加就加吧, 打开 config.php 找到以下代码 /*|------------- ...

  9. copy

    拷贝文件,不覆盖重复文件 yes no|cp -i a b

  10. yum downloadonly

         有些时候集群中的机器无法联网,通过yum进行安装,这样就需要找一个相同内核的机器将rpm下载后再到相应的机器上进行安装,以解决这一问题.      yum 有相应的工具完成这一任务.     ...