Python版:Selenium2.0之WebDriver学习总结_实例1

 快来加入群【python爬虫交流群】(群号570070796),发现精彩内容。

实属转载:本人看的原文地址 :http://blog.sina.com.cn/s/blog_6b1ed4fb0101diuz.html

(2012-12-10 13:49:53)

标签:

selenium2

webdriver

python

it

分类: Selenium
例子1:该例子主要是登录网易相册,创建一个私人相册,并进入某相册对照片浏览并评论,删除照片。然在这个例子中,可以找到各种方式定位元素方法的具体实例:
备注:iframe焦点还有问题啊,待解决。
 
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest
 
 
class Test_Photo(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.baseUrl = "http://photo.163.com"
        #设置等待时间,防止页面未加载完成脚本提示异常
        self.driver.implicitly_wait(30)
        self.verificationErrors = []
 
    def test_WebDriverTest1(self):
        #打开一个网址
        driver = self.driver
        driver.get(self.baseUrl + "/")
 
        #输入用户名
        #by XPath
        driver.find_element_by_xpath("//input[@name='username']").clear()
        driver.find_element_by_xpath("//input[@name='username']").send_keys("angel-zhe@163.com")
        driver.find_element_by_xpath("//input[@name='username']").send_keys(Keys.ENTER)
 
        #输入密码
        #by name
        driver.find_element_by_name("password").clear()
        driver.find_element_by_name("password").send_keys("xtrrk0707")
 
        #点击登录
        #by id
        driver.find_element_by_id("photo_index_login").click()
 
        #获取页面Title
        #by js
        print driver.title
 
        #进入我的相册
        #by Xpath
        driver.find_element_by_css_selector("span.name").click()
        # driver.find_element_by_xpath("//div[@id='J-loginMod']/div/a[1]/span[1]").click()
 
        #点击  创建相册
        #by linkText
        driver.find_element_by_link_text("创建相册").click()
 
        #输入相册名称
        #by name
        driver.find_element_by_name("fm-0").clear()
        driver.find_element_by_name("fm-0").send_keys("new ablum2")
        #by Xpath
        #driver.find_element_by_xpath("//input[@name='fm-0']").clear()
        #driver.find_element_by_xpath("//input[@name='fm-0']").send_keys("new ablum")
 
        #选择私人相册
        driver.find_element_by_xpath("(//input[@name='fm-2'])[5]").click()
 
        #点击确定 两种方式
        #by css
        driver.find_element_by_css_selector("button.ui-btn.ui-btn-sub0").click()
        driver.implicitly_wait(10)
 
        #点击返回
        #by linkText
        driver.find_element_by_link_text("<<返回").click()
 
        #选择aaa分类
        #by css
        #select = driver.find_element_by_css_selector("select.fc5.bdwa")
        #/选择的三种不同实现
        #select.select_by_value("aaa")
        #select.select_by_index(1)
        #select.select_by_visible_text("aaa")
 
        #以上这个分类操作方法因为界面问题,还没有尝试去验证Select方法,以下经Link_Text方法操作
        #by link_Text
        driver.find_element_by_link_text("分类").click()
        driver.find_element_by_link_text("全部相册").click()
        driver.implicitly_wait(10)
 
        #打开相册
        #by Xpath
        driver.find_element_by_xpath("//img[@title='我的相册 ']").click()
 
        #打开某张照片
        #by Css
        driver.find_element_by_css_selector("div.item.on > div.ln.ln0 > a > img.ztag201008041230345").click()
 
        #下一张浏览照片
        #by Css
        driver.find_element_by_css_selector("div.ibox.right-img > img.ztag201008041230345").click()
 
        #输入评论
        #/因为评论框放在一个iframe中,所以要切换到iframe中,结束后将焦点切换回去
        #by tagName
        driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))
        activeElementid = driver.switch_to_active_element().get_attribute("id")
        driver.find_element_by_id(activeElementid).sendKeys("评论内容!")
        driver.switch_to_default_content()
 
        #点击 发表,两种方式
        #by className
        driver.find_element_by_class_name("ui-btn-main0").click()
        #by Xpath
        driver.find_element_by_xpath("//input[@value='发表']").click()
 
        #上一张浏览照片
        #by Css
        driver.find_element_by_css_selector("div.ibox left-img > img.ztag201008041230345").click()
 
        #点击 删除
        #by linkText
        driver.find_element_by_link_text("删除").click()
 
        #点击 确认
        #by Css
        #driver.find_element_by_css_selector("button.ui-btn.ui-btn-sub0").click()
        driver.find_element_by_link_text("确 定").click()
 
        #点击 返回
        #by xpath
        driver.find_element_by_link_text("<<返回").click()
 
        #退出登录
        #by id
        driver.find_element_by_id("headerLogout").click()
 
        #浏览器后退
        driver.back()
 
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)
 
if __name__ == "__main__":
    unittest.main()

Python版:Selenium2.0之WebDriver学习总结_实例1的更多相关文章

  1. 转:Selenium2.0之grid学习总结

    (一)介绍: Grid的功能: 并行执行 通过一个中央管理器统一控制用例在不同环境.不同浏览器下运行 灵活添加变动测试机 (二)快速开始 这个例子将介绍如何使用selenium2.0的grid,并且注 ...

  2. 转:Selenium2.0介绍——WebDriver两种驱动浏览器的方式.

    如果之前熟悉Selenium RC,理解了Selenium RC是如何工作的,那么,当第一次接触Selenium WebDriver的时候,看到WebDriver居然可以不需要指定远端服务器的IP地址 ...

  3. selenium win7+selenium2.0+python环境搭建

    win7+selenium2.0+python环境搭建 by:授客 QQ:1033553122 步骤1:下载python 担心最新版的支持不太好,这里我下载的是python 2.7(selenium之 ...

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

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

  5. Selenium win7+selenium2.0+python+JetBrains PyCharm环境搭建

    win7+selenium2.0+python+JetBrains PyCharm环境搭建 by:授客 QQ:1033553122 步骤1:下载python 担心最新版的支持不太好,这里我下载的是py ...

  6. selenium2.0(WebDriver) API

    1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  h ...

  7. 学习笔记24—win10环境下python版libsvm的安装

    1.前言 由于毕业设计需要用到libsvm,所以最近专心于配置libsvm,曾经尝试过在matlab中安装,但是没有成功.最终在Python环境中完成安装. 2.LIBSVM介绍 LIBSVM 是台湾 ...

  8. 数据科学的完整学习路径—Python版(转载)

    时间 2015-01-29 14:14:11  数盟原文  http://dataunion.org/?p=9805 译者: Allen 从Python菜鸟到Python Kaggler的旅程(译注: ...

  9. ROS Learning-021 learning_tf-05(编程) now() 和 Time(0) 的区别 (Python版)

    ROS Indigo learning_tf-05 now() 和 Time(0)的区别 (Python版) - waitForTransform() 函数 我使用的虚拟机软件:VMware Work ...

随机推荐

  1. Java项目接入sso单点登录

    最近在落地cat(java开发的一款开源监控系统)接入公司的内部项目,其中有项需求是接入公司的sso单点登录系统.研究了公司之前java项目接入sso系统,大部分是采用spring框架,然后依赖spr ...

  2. Linux嵌入式kgdb调试环境搭建

    ======================= 我的环境 ==========================PC 端: win7 + vmware-15 ubuntu16.04开发板:Freesca ...

  3. Flutter学习笔记(4)--Dart函数

    如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...

  4. Golang之mirco框架部分浅析

    在实习中使用 micro 框架,但是挺多不懂的,看了部分源码搞懂了一些,还是有一些比较复杂没搞懂. 第一部分:初始化 service 并修改端口 main.go // waitgroup is a h ...

  5. @Bean 注解全解析

    目录 @Bean 基础声明 @Bean 基本构成及其使用 @Bean 注解与其他注解产生的火花 @Profile 注解 @Scope 注解 @Lazy 注解 @DependsOn 注解 @Primar ...

  6. 把大象装进冰箱:HTTP传输大文件的方法

    上次我们谈到了HTTP报文里的div,知道了HTTP可以传输很多种类的数据,不仅是文本,也能传输图片,音频和视频.   早期互联网上传输的基本上都是只有几k大小的文本和小图片,现在的情况则大有不同.网 ...

  7. F#周报2019年第28期

    新闻 FableConf门票开始贩售 Bolero的HTML模板支持热加载 Bolero从v0.4到v0.5的升级指南 完整的SAFE-Chat迁移至了Fable 2 为纯函数式3D图形生成领域专用语 ...

  8. Hash的应用2

    代码: #include <stdio.h> #define OFFSET 500000//偏移量 ];//记录每个数是否出现,出现为1,不出现为0 int main(){ int n,m ...

  9. 双剑合璧——掌握 cURL 和 Dig 走天涯

    如今随着大量的应用转移到网络,作为开发者,会经常做一些通讯测试,例如从网站获取信息.模拟用户向网站提交或者上传数据,查看应用通讯情况等等,现在变成了非常重要的任务. 一起来认识 cURL cURL 是 ...

  10. string的赋值

    string的赋值 string s1="123456"; 一:     只能在刚开始定义的时候用: (1)     从后往前赋值     string s2(s1,3);     ...