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. 【Go】使用压缩文件优化io (一)

    原文连接:https://blog.thinkeridea.com/201906/go/compress_file_io_optimization1.html 最近遇到一个日志备份 io 过高的问题, ...

  2. kubernetes实战篇之创建密钥自动拉取私服镜像

    系列目录 前面我们讲解了如何搭建nexus服务器,以及如何使用nexus搭建docker私有镜像仓库,示例中我们都是手动docker login登陆私服,然后通过命令拉取镜像然后运行容器.然而这种做法 ...

  3. 你必须了解的java内存管理机制(三)-垃圾标记

    本文在个人技术博客不同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩... 相关链接(注:文章讲解JVM以Hotspot虚拟机为例,jdk版本为1.8) ...

  4. Python基础(八) 模块的引入与定义

    模块定义 什么是模块:一个py文件就是一个模块 模块分为三类: 内置模块,(标准库):.python解释器自带的,time,os,sys,等等.200多种. 自定义模块:自己写的模块 第三方库(模块) ...

  5. 设计模式-访问者模式(Visitor)

    访问者模式是行为模式的一种.访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的.比较稳定的对象结构,这些对象的类都拥有一个accept方法用来接受访问者的访问.访问者是一个接口,它拥有一个vi ...

  6. 001-python3 初识

    一.python的起源 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 二.python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的 ...

  7. hibernate中的dialect解释

    dialect就是“方言”,因为hibernate是要把Java对象转换成关系数据库来描述的,而关系数据库虽然有一些统一的标准,如SQL-92等,但是实际上各数据库如Oracle, MySQL, MS ...

  8. C语言学习书籍推荐《数据结构与算法分析:C语言描述(原书第2版)》下载

    维斯 (作者), 冯舜玺 (译者) <数据结构与算法分析:C语言描述(原书第2版)>内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能.效率以及对运行 ...

  9. Mysql两张表的关联字段不一致

    工作中遇到了一个问题,邮件系统群发失败,后来经过排查查找到了原因 原来是因为mysql中的两张表的关联字段竟然不一致, 表A mysql> desc rm_user_router;+------ ...

  10. [机器学习] k-近邻算法(knn)

    最近在参加大数据的暑期培训,记录一下学习的东西. 引言 懒惰学习法:简单的存储数据,并且一直等待,直到给定一个检验数据,才进行范化,以便根据与存储的训练元组的相似性对该检验数据进行分类.懒惰学习法在 ...