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-classList修改class属性
classList定义与用法 1)classList属性返回元素的类名,作为DOMTokenList对象 2)该属性用于在元素中添加,移除及切换css类 3)classList属性是只读的,但可以用a ...
- Object 转 String
做项目中 : map 为Map<String,Object> a.setmoney(new BigDecimal((String)map.get("money"))); ...
- JVM 常量池
最近正好在研究这个问题,题主问题本身是有问题的,在JDK7中HotSpot的常量池是放在Java Heap中,并非题目中的native memory中.在JDK6中是放在Perm Space.题主可以 ...
- 某考试 T1 Hello my friend
Discription
- oracle 查看各表空间剩余量
1.查看所有表空间大小.剩余量: select dbf.tablespace_name,dbf.totalspace "总量(M)",dbf.totalblocks as 总块数, ...
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”
首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中对本模块提供给其它模块 ...
- procomm plus
procomm plus这是查看串口数据的软件.
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)
之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白 ...
- Odoo webinar
分享些 odoo9 webinar 视频 https://pan.baidu.com/s/1pLF5njt
- vs2012编译ffmpeg
从官方网站down下来的ffmpeg没有pdb文件不方便调试,为此使用VS2012编译ffmpeg. 编译步骤: 一.安装MinGW,具体的安装方法上一篇文章已经有介绍这里不在赘述. 二.下载文件并放 ...