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 ...
随机推荐
- js遍历map匹配数据和js遍历数组匹配map数据
var __LocalDataCities = { list: { "010": ["北京", "BEIJING"], "0100 ...
- 转载:P2P技术原理及应用(2)
转载allen303allen的空间 在Gnutella网络中存在以下问题: 冗余消息多,对带宽的消耗存在一定的浪费.Gnutella网络协议采用泛洪式(Flooding)消息传播机制,这种消息传播机 ...
- Java中Javadoc的{@link}与@see的简单区别
{@link}与@see这两个Javadoc注解都可以直接链接类和方法.用法基本一致. 但是@see必须顶头写,而{@link可以任意地方},如下所示: 参考: http://blog.csdn.ne ...
- Concurrency and Application Design (二)
Dispatch Queues dispatch queues 是基于c机制的一系列自定义任务操作.遵循先进先出的规则.每次只执行一个任务,直到上个任务完成才执行新的任务.相反的,并发的dispatc ...
- [IOS笔记] - 动画animation
//移动 - (IBAction)translation:(id)sender { CABasicAnimation *traslation = [CABasicAnimation animation ...
- 【Tensorflow】tf.argmax函数
tf.argmax(input, axis=None, name=None, dimension=None) 此函数是对矩阵按行或列计算最大值 参数 input:输入Tensor axis:0表示 ...
- socket阻塞与非阻塞,同步与异步I/O模型
作者:huangguisu 原文出处:http://blog.csdn.NET/hguisu/article/details/7453390 socket阻塞与非阻塞,同步与异步 1. 概念理解 在进 ...
- php自己编译安装后,再给这个编译安装的php版本添加拓展模块的处理办法。
原文: https://www.cnblogs.com/zongyl/p/5924627.html 说明,给编译安装之后的php 添加pgsql 拓展成功. --------------------- ...
- One usage of recurison: the tower of Hanoi
Statements: This blog was written by me, but most of content is quoted from book[Data Structure wit ...
- C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 C# 文件压缩加解密
C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩 这里我们选用ICSharpCode.SharpZipLib这个类库来实现我们的需求. 下载地址:http:// ...