WebDriver--简单的元素操作
以登录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--简单的元素操作的更多相关文章
- Selenium2(WebDriver)总结(五)---元素操作进阶(常用类)
1.Alert类 Alert是指windows弹窗的一些操作,需要new一个Alert类 driver.switchTo().alert():切换到alert窗口 alert.getText():取得 ...
- selenium--控制浏览器和简单元素操作
控制浏览器1.driver.maximize_window() #浏览器最大化2.driver.set_windows_size(480*800) #浏览器设置成移动端大小(480*800),参数数字 ...
- selenium + python自动化测试unittest框架学习(三)webdriver元素操作(二)
上一篇是元素的定位,那么定位元素的目的就是对元素进行操作,例如写入文本,点击按钮,拖动等等的操作 (1)简单元素操作 简单元素操作 find_element_by_id("kw") ...
- webdriervAPI(控制浏览器及简单元素操作)
from selenium import webdriver driver = webdriver.Chorme() driver.get("http://www.baidu.co ...
- Selenium 2自动化测试实战9(简单元素操作)
一.简单元素操作 1. webdriver中常用的几个方法: clear():清除文本 send_keys(*value):模拟按键输入 click():单击元素 clear()方法用于清除文本输入框 ...
- D3.js系列——元素操作和简单画布操作
一.元素操作: 1.选择元素 select 和 selectAll,以及选择集的概念 var p = d3.select("body").select("p") ...
- Selenium webdriver 元素操作
本来这些东西网上一搜一大堆,但是本着收集的精神,整理一份放着吧!哈!哈!哈! 1. 输入框(text field or textarea) WebElement element = driver.fi ...
- Selenium webdriver Java 元素操作
本来这些东西网上一搜一大堆,但是本着收集的精神,整理一份放着吧!哈!哈!哈! 1. 输入框(text field or textarea) WebElement element = driver.fi ...
- Java Selenium - 元素操作 (二)
一篇概括了常用的元素定位方法,但是找到元素还是不够的,模拟鼠标的操作,完成各个功能点的自动操作才是关键. 下面是常见的页面元素操作会涉及到的方法,不是很全,比较复杂的后面单独拿出来做案例. 一, 输入 ...
- selenium webdriver模拟鼠标键盘操作
在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...
随机推荐
- XE版本 InputQuery 可以同时填多个输入值
function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of s ...
- Python爬虫学习(11):Beautiful Soup的使用
之前我们从网页中提取重要信息主要是通过自己编写正则表达式完成的,但是如果你觉得正则表达式很好写的话,那你估计不是地球人了,而且很容易出问题.下边要介绍的Beautiful Soup就可以帮你简化这些操 ...
- CentOS6.5的vsftp搭建流程(一)
前几次搭建FTP都失败了,不是登陆不了,就是目录没有权限.现在终于摸索出了靠谱的操作流程,分享之~ 1. 查看是否安装了vsftpd,未安装则安装 [root@iZ283tian2dZ /]# rpm ...
- Javascript 面向对象编程(一):封装
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...
- swift-func(函数)
函数是一个组织在一起语句集合,以执行特定任务. Swift 函数类似于简单 C 函数以及复杂的 Objective C 语言函数. 它使我们能够通过函数调用内部的局部和全局参数值. 像其他任何语言一样 ...
- spring3.0使用annotation完全代替XML
@Service与@Component有什么不同?那天被问到这个问题,一时之间却想不起来,就利用这篇文章来纪录spring3.0中常用的annotation. 从spring2.5开始,annotat ...
- ANGULAR $HTTP请求【转】
angular使用post.get向后台传参的问题 一.问题的来源 我们都知道向后台传参可以使用get.put,其形式就类似于name=jyy&id=001.但是在ng中我却发现使用$http ...
- web前端笔试选择题
1. 要动态改变层中内容可以使用的方法有(AB ) a)innerHTML b)innerText c)通过设置层的隐藏和显示来实现 d)通过设置层的样式属性的display属性 2. 当按键盘A时, ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- iOS8沙盒路径的变化
iOS8中的的沙盒路径发生了变化 之前是这样的路径,通过NSHomedictionary()获取的家路径 /Users/wupeng/Library/Application Support/iPhon ...