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 ...
随机推荐
- Servlet 2.4 规范之第三篇:Servlet生命周期
SRV.2.3 Servlet生命周期 servlet有着定义良好且明确的生命周期,它定义了servlet以怎样的方式加载和实例化.初始化.怎样处理客户端请求.以及怎样停止服务.生命周期 ...
- hdu 2462(欧拉定理+高精度快速幂模)
The Luckiest number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- vs-插件+配置
{ "window.zoomLevel": 0, "files.autoSave": "off", "editor.fontSiz ...
- VUE之Router命令行警告:Named Route 'Home' has a default child route. 解决办法
Named Route 'Home' has a default child route. When navigating to this named route (:to="{name: ...
- sql标准支持了事务隔离级别
事务隔离级别 尽管数据库为用户提供了锁的DML操作方式,但直接使用锁管理是非常麻烦的,因此数据库为用户提供了自动锁机制.只要用户指定会话的事务隔离级别,数据库就会分析事务中的SQL语句,然后自动为事务 ...
- 【IntelliJ IDEA】idea显示工具栏
idea显示工具栏 在view->勾选对应按钮即可
- DevExpress的GridControl如何实现打印和打印预览 z
第一种方法: System.Drawing.Printing.PageSettings set_print_page = new System.Drawing.Printing ...
- OpenGL step to step(2)
这是一个类似于地球绕太阳旋转的demo 原有的例子是用键盘接受事件,我做了修改,使用了timer把他变成一个动态旋转的 #import <Foundation/Foundation.h> ...
- xshell登陆腾讯云服务器
2016-12-11 00:17:36 前段时间在同学的介绍下关注了一下腾讯云:然后里面有学生优惠可以拿到免费的域名和云服务器.所以感兴趣就实验了一下,今天中午抢到了“1元特惠的学生包”,里面有免 ...
- ZooKeeper 授权验证
ZooKeeper 授权验证 学习了:https://blog.csdn.net/liuyuehu/article/details/52121755 zookeeper可以进行认证授权: