参考【http://blog.csdn.net/henni_719/article/details/51096531】大神写的笔记,多谢大神共享。

哈哈,今天又找到一位大神写的Selenium2+Python自动化的好文了,收藏收藏

http://www.cnblogs.com/fnng/p/3160606.html

1、Webdriver API

1)定位元素:Python中定位元素的方法如下:

find_element_by_id()

find_element_by_name()

find_element_by_class_name()

find_element_by_tag_name()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_xpath()

find_element_by_css_selector()

在使用By时需要将By类导入:from selenium.webdriver.common.by import By

2)控制浏览器:

a、Webdriver提供set_windows_size()方法设置浏览器大小;

#coding=utf-8
from selenium import webdriver
driver=webdriver.Chorme()
driver.get(“http://m.mail.10086.cn”) print u“设置浏览器的宽480,高800显示” #u:代表里面字符串是Unicode编码的
driver.set_window_size(480,800)
driver.quit()

b、Maximize_window():使浏览器最大化

c、back()和forward()方法来模拟后退和前进

3)常用的几个元素属性

size:返回元素大小

text:返回元素的文本值

get_attribute(name):获取元素某个属性的值

is_displayed():判断元素是否是显示,True:显示,False:隐藏

size = driver.find_element_by_id('kw').size
print type(size)
print "kw element size is %r" % repr(size) text = driver.find_element_by_id('kw').text
print "kw element size is %s" % text attribute = driver.find_element_by_id("kw").get_attribute("type")
print "kw element attribute is %s" % attribute re = driver.find_element_by_id("kw").is_displayed()
print "kw element is displayed? %r" % re
输出:
<type 'dict'>
kw element size is "{'width': 500, 'height': 22}"
kw element size is
kw element attribute is text
kw element is displayed? True

4)鼠标事件:webdriver中关于鼠标操作是由ActionChains类提供。

鼠标类的包:from selenium.webdriver.common.action_chains import ActionChains

常用的鼠标操作的方法

perform():执行ActionChains类存储的方法

context_click():右击

double_click():双击

drag_and_drop():拖动

drag_and_drop(source,target):从原元素上按下左键拖拽元素到目标元素后释放

move_to_element():鼠标移动到某元素

click_and_hold():按下鼠标左键停在某个元素上

 from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
import os
if __name__ == "__main__":
chromeDriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver_x64.exe"
os.environ["webdriver.chrome.driver"] = chromeDriver
driver = webdriver.Chrome(chromeDriver)
driver.get("http://yun.baidu.com") time.sleep(3)
driver.find_element_by_id("TANGRAM__PSP_4__userName").clear()
driver.find_element_by_id("TANGRAM__PSP_4__userName").send_keys("username")
driver.find_element_by_id("TANGRAM__PSP_4__password").clear()
driver.find_element_by_id("TANGRAM__PSP_4__password").send_keys("password")
driver.find_element_by_id("TANGRAM__PSP_4__submit").click() disk_NET=driver.find_element_by_class_name("pulldown-nav")
ActionChains(driver).move_to_element(disk_NET).perform()
time.sleep(3)
DC=driver.find_element_by_link_text("网盘")
#感觉下面写的xpath语句也没错,但是执行了没有点击效果???/(ㄒoㄒ)/~~
#DC = driver.find_element_by_xpath("//div[@class='navs']/div[1]/div[1]/div[@class='content']/a[1]/span[1]")
ActionChains(driver).double_click(DC).perform() time.sleep(10)
driver.quit()

5)键盘事件:Keys类提供操作键盘上几乎所有键的方法,send_keys()模拟键盘输入,还可以模拟一些组合键,比如:ctrl+c、Ctrl+v等

 键盘类的包:from selenium.webdriver.commom.keys import Keys

常用的键盘操作:

send_keys(Keys.BACK_SPACE):删除键(BackSpace)

send_keys(Keys.SPACE):空格键(Space)

send_keys(Keys.TAB):制表键(Tab)

send_keys(Keys.ESCAPE):回退键(Esc)

send_keys(Keys.ENTER):回车键(Enter)

send_keys(Keys.CONTROL,'a'):全选(Ctrl+A)

send_keys(Keys.CONTROL,'c'):复制(Ctrl+C)

send_keys(Keys.CONTROL,'x'):剪切(Ctrl+X)

send_keys(Keys.CONTROL,'v'):粘贴(Ctrl+V)

send_keys(Keys.F1):键盘F1

 from selenium.webdriver.common.keys import Keys
import time
def keyboard(driver):
time.sleep(2)
driver.find_element_by_id("kw").send_keys("vameii")
driver.find_element_by_id("kw").submit()
#由于下面每步都执行的很快,所以加个time.sleep()执行效果更明显
#删除多余的i
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
time.sleep(3)
#Ctrl+a全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
time.sleep(3)
#Ctrl+x全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
time.sleep(3)
#Ctrl+v全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
time.sleep(3)
driver.find_element_by_id("su").send_keys(Keys.ENTER)
time.sleep(3) driver.quit()

Selenium2+Python自动化学习笔记(第1天)的更多相关文章

  1. 【python自动化学习笔记】

    [python自动化第一篇:python介绍与入门] [python自动化第二篇:python入门] [python自动化第三篇:python入门进阶]      [Python自动化第三篇(2):文 ...

  2. python自动化学习笔记10-数据驱动DDT与yml的应用

    在测试工作中,针对某一API接口,或者某一个用户界面的输入框,需要设计大量相关的用例,每一个用例包含实际输入的各种可能的数据.通常的做法是,将测试数据存放到一个数据文件里,然后从数据文件读取,在脚本中 ...

  3. python自动化学习笔记11-自动化测试UTP框架

    前面基本的unittest及ddt已经学过了,现在我们系统把这些知识结合起来,写一个简单的UTP自动化测试框架: 我们先来建基础目录,首先新建一个项目,项目下建父目录UTP,conf目录,用来存放配置 ...

  4. python自动化学习笔记3-集合、函数、模块

    文件操作 上次学习到文件的读写,为了高效的读写文件,我们可以用循环的方式,一行一行的进行读写操作,打开文件的方法是open的方法,打开文件执行完后还要进行关闭操作. 一般的文件流操作都包含缓冲机制,w ...

  5. Selenium2+python自动化(学习笔记3)

    1.加载firefox配置 参考代码: # coding=utf-8from selenium import webdriver# 配置文件地址,打开Firefox点右上角设置--帮助--故障排除信息 ...

  6. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

  7. Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例

    ---------------------------------------------------------------------------------------------------- ...

  8. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  9. Selenium2+python自动化23-富文本(自动发帖)

    前言 富文本编辑框是做web自动化最常见的场景,有很多小伙伴遇到了不知道无从下手,本篇以博客园的编辑器为例,解决如何定位富文本,输入文本内容 一.加载配置 1.打开博客园写随笔,首先需要登录,这里为了 ...

随机推荐

  1. SVN如何切换用户对代码进行操作

    在使用svn更新或提交数据时需要输入用户名和密码,在输入框中可以选择是否记录,以便下次操作无需再次输入用户名和密码: 要切换其他用户名时,需要删除已记录用户的数据,在电脑桌面上右击,依次点击菜单项To ...

  2. 完美修改iOS项目名

    注意:重命名项目时,记得先备份好一份 1.选中旧项目名,改为新项目名: 选择rename: 2.修改相关文件夹名称: 3.全局搜索旧项目名称,然后替换为新项目名称: 4.经过步骤3的替换,再次全局搜索 ...

  3. Sybase数据库:两个特别注意的地方

    Sybase数据库:两个特别注意的地方 一.字段别名 字段别名不能为查询条件中的列名,会导致查询出来的数据不准确:最好字段别名为非列名: 二.更新的表名的大小写 update a set .... s ...

  4. 20145219 《Java程序设计》实验二 Java面向对象程序设计实验报告

    20145219 <Java程序设计>实验二 Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S. ...

  5. 黑苹果Yosemite 10.10.1懒人版完美安装及简单驱动设置

    1.硬件概要 CPU: 英特尔 Xeon E3-1230 V2 (四核)主板: 技嘉 H77-DS3H (Intel H77 (Panther Point Base))内存: 8 GBytes显卡: ...

  6. [BZOJ1018]堵塞的交通traffic

    Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一 ...

  7. 采用DoGet方式提交中文,乱码产生原因分析及解决办法

    前段时间某功能在测试机器上出现乱码,情况如下:   现象:           调试搜索功能时,通过doGet方法提交到后台的中文参数在本地和开发测试机器上为乱码(Action层),在测试人员测试机器 ...

  8. AngularJS Source code

    Angular.js 辅助函数 lowercase hasOwnProperty uppercase mannualLowercase mannualUppercase isArrayLike for ...

  9. Dos命令的巧用 - 转载

    Dos命令的巧用 豪华绚丽的Windows让人们把DOS抛到遥远的记忆角落,然而,真正有价值的东西不会轻易退出历史的舞台.很多人都已经习惯于 Windows的图形化用户界面,熟不知古老的DOS命令却可 ...

  10. 不常用的gcd公式

    gcd(a^m-b^m,a^n-b^n)=a^(gcd(m,n))-b^(gcd(m,n))