selenium2 python范例
selenium2 python范例
下面脚本的功能是:打开谷歌浏览器--》跳转到某个网址--》输入用户名和密码登录--》读取页面内的数据并求和。
# coding=utf-8 #编码声明
import time
from selenium import webdriver # 跳转到首页
driver = webdriver.Chrome() # Optional argument, if not specified will search path.
driver.implicitly_wait(15)
driver.get('http://xxx.xxx.xxx') # 网址
# driver.maximize_window()
time.sleep(5) # Let the user actually see something!
loginButton1 = driver.find_element_by_id('login') # 通过id定位元素
loginButton1.click()
driver.find_element_by_id('username').send_keys('xxxxxx') # 用户名
driver.find_element_by_id('password').send_keys('yyyyyy') # 密码
time.sleep(5)
driver.find_element_by_xpath('//button[@type="submit"]').click() # 通过xpath定位元素
time.sleep(5) # Let the user actually see something! # 设置机构
driver.find_element_by_xpath("//*[@id='profile-messages']/a/b").click()
driver.find_element_by_xpath("//*[@id='profile-messages']/ul/li[3]/a").click()
time.sleep(5)
# 作品排行
driver.find_element_by_xpath("//*[@id='articles_Rank']/a").click()
# 全部媒体
driver.find_element_by_xpath("//*[@id='media_0']").click()
# 设置时间
driver.find_element_by_xpath("//*[@id='reservation']").click()
driver.find_element_by_xpath("//div[@class='calendar left']//th[@class='prev available']").click()
driver.find_element_by_xpath("//div[@class='calendar left']//td[@data-title='r0c6']").click() # 10月1号
driver.find_element_by_xpath("//div[@class='calendar right']//th[@class='prev available']").click()
driver.find_element_by_xpath("//div[@class='calendar right']//td[@data-title='r5c1']").click() # 10月31号
driver.find_element_by_xpath("//body/div[8]/div[1]/div/button[1]").click() # 读取目标并求值
time.sleep(1) # 加入延时,解决“click操作后立刻查找的元素使用element.text,报stale element错误”的问题
total = int(0)
elementList = driver.find_elements_by_xpath("//*[@id='articleContent']//td[5]")
for element in elementList:
text2 = element.text
value = int(text2)
total = total + value
hasNext = False
while 1:
buttonList = driver.find_elements_by_xpath("//*[@id='page']//a")
pageButton = buttonList[len(buttonList)-1]
if pageButton.text == "Next":
hasNext = True
driver.execute_script("arguments[0].scrollIntoView();", pageButton) # 执行js语句,通过滚动页面,将不在视野内的元素挪到视野内。
pageButton.click()
else:
hasNext = False
driver.quit()
break
if hasNext:
time.sleep(1)
elementList = driver.find_elements_by_xpath("//*[@id='articleContent']//td[5]")
for element in elementList:
text1 = element.text
value = int(text1)
total = total + value
print "value: " + str(value)
print "total: " + str(total) #
driver.quit()
selenium2 python范例的更多相关文章
- Selenium2+python自动化17-JS处理滚动条
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...
- Selenium2+python自动化23-富文本(自动发帖)
前言 富文本编辑框是做web自动化最常见的场景,有很多小伙伴遇到了不知道无从下手,本篇以博客园的编辑器为例,解决如何定位富文本,输入文本内容 一.加载配置 1.打开博客园写随笔,首先需要登录,这里为了 ...
- Selenium2+python自动化24-js处理富文本(带iframe)
前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...
- Selenium2+python自动化7-xpath定位
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- Selenium2+python自动化13-Alert
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...
- Selenium2+python自动化28-table定位
前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...
- selenium2 python自动化测试实战(回归测试)
selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...
- Selenium2+python自动化43-判断title(title_is)
From: https://www.cnblogs.com/yoyoketang/p/6539117.html 前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取 ...
- Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)
前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...
随机推荐
- Day 16 之二 省市县三级联动
摘录自:雨神,供参考! province_dic = { "河北": { "石家庄": ["鹿泉", "藁城", &qu ...
- AC日记——最大子树和 洛谷 P1122
题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是当日课后,小明 ...
- 利用注解和反射,将Bean枚举字段的值填入相应的字段中,并转化为fastjson返回前台
需求:需要将枚举类型的字段例如enable(是否启用)转化为enable:1,enableName:是.这种形式返回给前台. 思路:在bean字段上加上枚举类型的注解,通过字段的值和枚举类反射获取枚举 ...
- cef 下载地址
最新的CEF3源代码在:http://cefbuilds.com/CEF3的论坛:http://www.magpcss.org/ceforum/viewforum.php?f=5CEF3 C++开发环 ...
- php 打印今天,昨天,本周,上周,当月,上月,本季,上季,今年,去年数据
if($filter['mode']) { switch ($filter['mode']) { case 1://今天的数据 $time_start = date("Y-m-d H:i:s ...
- javascript 函数初探 (六)--- 闭包初探#2
首先,我们需要声明一个全局函数的占位符.尽管这种占位符不是必须的,但最好还是声明一下,然后我们重新将函数F()定义一下: var inner; var F = fucntion(){ var b = ...
- cookie读取设置name
cookie就是k-v形式,可以理解为一个hashmap cookie就是k-v形式,可以理解为一个hashmap cookie就是k-v形式,可以理解为一个hashmap 建立一个无生命周期的coo ...
- eclipse项目java版本更改
然后.右键点击项目->properties->Java Compiler->....如图 最后,右键点击项目->properties->Project Facets ...
- mac异常删除管理员账户恢复操作
重新启动电脑,同时按下command+s键进入命令行方式 待系统加载完成后顺序输入以下命令: /sbin/mount -uaw rm var/db/.applesetupdone reboot 待系统 ...
- phpcms v9中 action="position" 和action="lists"有什么差别, 以及action 的属性和值
action值的含义: lists 内容数据(文章?)列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列表 position 内容推荐位列表