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. 攻防世界 web进阶练习 NewsCenter

    攻防世界 web进阶练习 NewsCenter   题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...

  2. Kali Linux Web渗透测试手册(第二版) - 1.1 - Firefox浏览器下安装一些常用的插件

    一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: l  在Windows和Linux上安装VirtualBox l  创建一个Kali Linux虚拟机 l  更新和升级Ka ...

  3. Docker安装MySql-挂载外部数据和配置

    环境 CentOS:7 Docker:1.31.1 MySql:5.7   拷贝mysql配置文件 1.首先创建mysql容器 -p : -e MYSQL\_ROOT\_PASSWORD= -d my ...

  4. mac下mysql的卸载和安装

    1. mysql的卸载 1 sudo rm /usr/local/mysql 2 sudo rm -rf /usr/local/mysql* 3 sudo rm -rf /Library/Startu ...

  5. docker命令总结

    用 docker pull 拉取镜像 root@lishichao-virtual-machine:~# docker pull hello-world Using default tag: late ...

  6. 使用new新建动态二维数组(多注意)

    #include<iostream> using namespace std; int main() { //设想要建立一个rows行,cols列的矩阵 //使用new进行新建 int r ...

  7. python面试题(二)字符串常用函数

    今天在微信的公众号上看到了一遍python学习开发的文章,里面有一些python的面试题,碰巧最近python不知道学什么了,索性学一下这篇文章啊!!先写一下一些字符串的常用函数.(ps:本人太菜,若 ...

  8. 003.SQLServer数据库镜像高可用部署

    一 数据库镜像部署准备 1.1 数据库镜像支持 有关对 SQL Server 2012 中的数据库镜像的支持的信息,请参考:https://docs.microsoft.com/zh-cn/previ ...

  9. springMVC java.lang.IllegalStateException: getOutputStream() has already bee

    在导出文件的时候,一直报这个错误. 网上一般的做法是out.clear();或者使用servlet或者Action返回null. 试过了这些方法都不成功. 最后直到试了在jsp重定向的方法才成功了. ...

  10. 通过字节码分析java中的switch语句

    在一次做题中遇到了switch的问题,由于对switch执行顺序的不了解,在这里简单的通过字节码的方式理解一下switch执行顺序(题目如下): public class Ag{ static pub ...