selenium2 python范例

selenium2 python范例

下面脚本的功能是:打开谷歌浏览器--》跳转到某个网址--》输入用户名和密码登录--》读取页面内的数据并求和。

 1 # coding=utf-8 #编码声明
 2 import time
 3 from selenium import webdriver
 4
 5 # 跳转到首页
 6 driver = webdriver.Chrome()  # Optional argument, if not specified will search path.
 7 driver.implicitly_wait(15)
 8 driver.get(‘http://xxx.xxx.xxx‘)  # 网址
 9 # driver.maximize_window()
10 time.sleep(5)  # Let the user actually see something!
11 loginButton1 = driver.find_element_by_id(‘login‘)  # 通过id定位元素
12 loginButton1.click()
13 driver.find_element_by_id(‘username‘).send_keys(‘xxxxxx‘)  # 用户名
14 driver.find_element_by_id(‘password‘).send_keys(‘yyyyyy‘)  # 密码
15 time.sleep(5)
16 driver.find_element_by_xpath(‘//button[@type="submit"]‘).click() # 通过xpath定位元素
17 time.sleep(5)  # Let the user actually see something!
18
19 # 设置机构
20 driver.find_element_by_xpath("//*[@id=‘profile-messages‘]/a/b").click()
21 driver.find_element_by_xpath("//*[@id=‘profile-messages‘]/ul/li[3]/a").click()
22 time.sleep(5)
23 # 作品排行
24 driver.find_element_by_xpath("//*[@id=‘articles_Rank‘]/a").click()
25 # 全部媒体
26 driver.find_element_by_xpath("//*[@id=‘media_0‘]").click()
27 # 设置时间
28 driver.find_element_by_xpath("//*[@id=‘reservation‘]").click()
29 driver.find_element_by_xpath("//div[@class=‘calendar left‘]//th[@class=‘prev available‘]").click()
30 driver.find_element_by_xpath("//div[@class=‘calendar left‘]//td[@data-title=‘r0c6‘]").click()  # 10月1号
31 driver.find_element_by_xpath("//div[@class=‘calendar right‘]//th[@class=‘prev available‘]").click()
32 driver.find_element_by_xpath("//div[@class=‘calendar right‘]//td[@data-title=‘r5c1‘]").click()  # 10月31号
33 driver.find_element_by_xpath("//body/div[8]/div[1]/div/button[1]").click()
34
35 # 读取目标并求值
36 time.sleep(1)  # 加入延时,解决“click操作后立刻查找的元素使用element.text,报stale element错误”的问题
37 total = int(0)
38 elementList = driver.find_elements_by_xpath("//*[@id=‘articleContent‘]//td[5]")
39 for element in elementList:
40     text2 = element.text
41     value = int(text2)
42     total = total + value
43 hasNext = False
44 while 1:
45     buttonList = driver.find_elements_by_xpath("//*[@id=‘page‘]//a")
46     pageButton = buttonList[len(buttonList)-1]
47     if pageButton.text == "Next":
48         hasNext = True
49         driver.execute_script("arguments[0].scrollIntoView();", pageButton)  # 执行js语句,通过滚动页面,将不在视野内的元素挪到视野内。
50         pageButton.click()
51     else:
52         hasNext = False
53         driver.quit()
54         break
55     if hasNext:
56         time.sleep(1)
57         elementList = driver.find_elements_by_xpath("//*[@id=‘articleContent‘]//td[5]")
58         for element in elementList:
59             text1 = element.text
60             value = int(text1)
61             total = total + value
62             print "value: " + str(value)
63             print "total: " + str(total)
64
65
66 #
67 driver.quit()
时间: 2024-10-02 08:02:32

selenium2 python范例的相关文章

Selenium2+python自动化59-数据驱动(ddt)

前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成. 一.环境准备 1.安装ddt模块,打开cmd输入pip install ddt在线安装 >>pip install ddt 二.数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.case前加修饰@ddt.data() 4.运

Selenium2+python自动化39-关于面试的题

前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点. 一.selenium中如何判断元素是否存在? 首先selenium里面是没有这个方法的,判断元素存在需要自己写一个方法了. 元素存在有几种形式,一种是页面有多个元素属性重复的,这种直接操作会报错的:还有一种是页面隐藏的元素操作也会报错 判断方法参考这篇:Selenium2+python自动化36-判断元素存在 二.selenium中hidden或者是displa

Selenium2+python自动化47-判断弹出框存在(alert_is_present)

前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了. 本篇接着Selenium2+python自动化42-判断元素(expected_conditions)讲expected_conditions这个模块 一.判断alert源码分析 class alert_is_present(object):    """ Expect an alert to be present.""&q

Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)

前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一.导入HTMLTestRunner 1.这个模块下载不能通过pip安装了,只能下载后手动导入,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 2.Download下HTMLTestRunner.py文件就是我们需

Selenium2+python自动化52-unittest执行顺序

前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行. 本篇通过最简单案例详细讲解unittest执行顺序. 一.案例分析 1.先定义一个测试类,里面写几个简单的case # coding:utf-8import unittestimport timeclass Test(unittest.TestCase):    def setUp(self):        print "start!"

Selenium2+python自动化43-判断title(title_is)

前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言. 本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+python自动化42-判断元素(expected_conditions) 提到的expected_conditions模块里的title_is和title_contains两种方法 一.源码分析 1.首先看下源码,如下 class title_is(object):    """

Selenium2+python自动化33-文件上传(send_keys)

前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决: 另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库. 本篇以博客园的上传图片为案例,通过send_keys()方法解决文件上传问题 一.识别上传按钮 1.点开博客园编辑器里的图片上传按钮,弹出”上传本地图片”框. 2.用firebug查看按钮属性,这种上传图片按钮

selenium2+python学习笔记(一)自动化测试环境的搭建

selenium2+python 自动化测试环境的搭建 1.准备工作 1.1.搭建平台:Windows 1.2.准备工具如下: 下载python:http://python.org/getit/ 下载setuptools[python的基础包工具]:http://pypi.python.org/pypi/setuptools 下载pip[python的安装包管理工具]:https://pypi.python.org/pypi/pip 下载selenium:https://pypi.python.

Selenium2+python自动化17-JS处理滚动条

前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上. 滚动条是无法直接用定位工具来定位的.selenium里面也没有直接的方法去控制滚动条, 这时候只能借助J了,还好selenium提供了一个操作js的方法: execute_script(),可以直接执行js的脚本. 一.JavaScrip