以登录163邮箱为例,演示以下几个方法的使用

①switch_to.frame()

②.clear()

③.send_keys()

④.click()

⑤switch_to_default_content()

一、先分析163邮箱登录首页的HTML代码如下截图所示,分析一下几个需要注意的地方

用Firefox浏览器,通过Firebug定位”邮箱账号“输入处,其html代码如截图中蓝色部分

先来分析一下该元素,其tag为input,其属性有id、class、type、name、style等等,

不难发现该元素的id属性值中带有数字,一般带有数字的id值是可变的,不唯一,保险起见,定位该元素时不用id的定位方式。

在邮箱地址输入框的上方,可以看出其嵌套在表单frame/iframe中,所以定位邮箱账号输入框时,先进入到frame/iframe表单中,

frame/iframe的定位方式有3种,一是通过id;二是通过name;三是xpath

例:switch_to_frame(id)  ; 或是  switch_to_frame(name);若frame没有id和name,只能是通过xpath方式定位到frame,switch_to_frame(xpath)

二、具体的登录代码如下:

# -*- coding:utf-8 -*-
from selenium import webdriver
import time driver = webdriver.Firefox()
driver.get("http://www.mail.163.com/") driver.switch_to.frame("x-URS-iframe") #①switch_to.frame()进入到表单中
driver.find_element_by_xpath("//input[@class='j-inputtext dlemail']").clear() #②定位邮箱地址输入框,有时输入框中记忆了上次的账号,所以用clear()先清理一下输入框中的内容
driver.find_element_by_xpath("//input[@class='j-inputtext dlemail']").send_keys(username) #③在邮箱地址输入框中用send_keys()输入用户名
driver.find_element_by_xpath("//input[@class='j-inputtext dlpwd']").send_keys(password) #③在密码输入框中用send_keys()输入密码
driver.find_element_by_id("dologin").click() #④click()点击登录按钮
driver.switch_to.default_content() #⑤switch_to.default_content() 退出所有的表单;switch_to.parent_frame()退出当前一级表单
time.sleep(5)
driver.quit()

若文中内容有误,希望大家指正,谢谢。

WebDriver--简单的元素操作的更多相关文章

  1. Selenium2(WebDriver)总结(五)---元素操作进阶(常用类)

    1.Alert类 Alert是指windows弹窗的一些操作,需要new一个Alert类 driver.switchTo().alert():切换到alert窗口 alert.getText():取得 ...

  2. selenium--控制浏览器和简单元素操作

    控制浏览器1.driver.maximize_window() #浏览器最大化2.driver.set_windows_size(480*800) #浏览器设置成移动端大小(480*800),参数数字 ...

  3. selenium + python自动化测试unittest框架学习(三)webdriver元素操作(二)

    上一篇是元素的定位,那么定位元素的目的就是对元素进行操作,例如写入文本,点击按钮,拖动等等的操作 (1)简单元素操作 简单元素操作 find_element_by_id("kw") ...

  4. webdriervAPI(控制浏览器及简单元素操作)

    from  selenium  import  webdriver driver  =  webdriver.Chorme() driver.get("http://www.baidu.co ...

  5. Selenium 2自动化测试实战9(简单元素操作)

    一.简单元素操作 1. webdriver中常用的几个方法: clear():清除文本 send_keys(*value):模拟按键输入 click():单击元素 clear()方法用于清除文本输入框 ...

  6. D3.js系列——元素操作和简单画布操作

    一.元素操作: 1.选择元素 select 和 selectAll,以及选择集的概念 var p = d3.select("body").select("p") ...

  7. Selenium webdriver 元素操作

    本来这些东西网上一搜一大堆,但是本着收集的精神,整理一份放着吧!哈!哈!哈! 1. 输入框(text field or textarea) WebElement element = driver.fi ...

  8. Selenium webdriver Java 元素操作

    本来这些东西网上一搜一大堆,但是本着收集的精神,整理一份放着吧!哈!哈!哈! 1. 输入框(text field or textarea) WebElement element = driver.fi ...

  9. Java Selenium - 元素操作 (二)

    一篇概括了常用的元素定位方法,但是找到元素还是不够的,模拟鼠标的操作,完成各个功能点的自动操作才是关键. 下面是常见的页面元素操作会涉及到的方法,不是很全,比较复杂的后面单独拿出来做案例. 一, 输入 ...

  10. selenium webdriver模拟鼠标键盘操作

    在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...

随机推荐

  1. android开发:深入理解View(一):从setContentView谈起

    我们都知道 MVC,在Android中,这个 V 即指View,那我们今天就来探探View的究竟. 在onCreate方法中,可以调用this.setContentView(layout_id),来设 ...

  2. POJ 2774 Long Long Message ——后缀数组

    [题目分析] 用height数组RMQ的性质去求最长的公共子串. 要求sa[i]和sa[i-1]必须在两个串中,然后取height的MAX. 利用中间的字符来连接两个字符串的思想很巧妙,记得最后还需要 ...

  3. Gridview样式的CSS控制

    页面代码: .<asp:GridView ID="gvCustomres" runat="server" . DataSourceID="cus ...

  4. oracle中row_number和rownum的区别和联系(翻译)

    http://www.tuicool.com/articles/bI3IBv 附问题:有以下一个SQL语句: SELECT * FROM ( SELECT t.*, row_number() OVER ...

  5. 原生AJAX封装

    var ajaxHelper = { /*1.0 浏览器兼容的方式创建异步对象*/ makeXHR: function () { //声明异步对象变量 var xmlHttp = false; //声 ...

  6. UNP环境配置

    最近在学习<UNIX网络编程>,书上将常用的头文件都放在unp.h里,需要自己编译一下代码搭建环境. UNP环境配置过程 下载源码 http://www.unpbook.com/src.h ...

  7. UML类图关系--继承(泛化)、实现、关联、聚合、组合、依赖

    在UML类图中,常见的有以下几种关系:  泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composi ...

  8. 数字对象NSNumber

    //将int类型转化成对象 ; NSNumber *numberString = [NSNumber numberWithInt:number]; //对象是可以放入数组的 NSArray *arra ...

  9. Xamarin的不归路-安卓模拟器启动慢&没有虚拟键盘

    1.启动慢解决方案:参考这篇文章进行配置 http://www.360doc.com/content/13/1002/18/532901_318605525.shtml 2.模拟器没有虚拟键盘解决方案 ...

  10. git 常用操作命令

    A. 新建Git仓库,创建新文件夹git init B. 添加文件到git索引git add <filename>  --- 单个文件添加git add * --- 全部文件添加 C. 提 ...