文档章节

Selenium+Python对开源中国官网进行模拟登录

南寻
 南寻
发布于 2017/05/14 15:15
字数 505
阅读 714
收藏 23
点赞 1
评论 2

1.摘要:

Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行。Selenium不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的应用程序的自动化。

我们这里用到的

python:python3.6

操作系统:archlinux

相关库:

time

requests

logging

2.Selenium和Python的安装和配置

Selenium相关文档可参考

Selenium Python Bindings http://selenium-python.readthedocs.io/installation.html#introduction

Python相关文档可参考python官网

https://www.python.org/

3.导入相关库

import time
from selenium import webdriver
import requests
import logging

4.分析登录页面

(https://www.oschina.net/home/login?goto_page=https%3A%2F%2Fwww.oschina.net%2F)

发现我们只需要关注三个地方,手机/邮箱这个输入框,密码框,登录按钮。利用chrome的检查功能,检查这三个地方得:

手机/邮箱   <input type="text" id="userMail" value="" placeholder="手机/邮箱" class="">

密码框   <input type="password" id="userPassword" value="" placeholder="请输入密码">

登录按钮   <button type="button" class="btn btn-green block btn-login error">登录</button>

5.编写Selenium自动化登录操作

username = browser.find_element_by_id("userMail")
username.clear()
username.send_keys(account)
psd = browser.find_element_by_id("userPassword")
psd.clear()
psd.send_keys(password)
commit = browser.find_element_by_tag_name("button")
commit.click()

关于Selenium的定位方法(根据名字就应该能猜出来吧,我就不做过多解释了)

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

6.获取Cookie

 
for elem in browser.get_cookies():
    cookie+=elem["name"]+"="+ elem["value"]+"; "
if len(cookie) > 0:
    logger.warning("获取cookie成功: %s" % account)
    cookies.append(cookie)
    continue

7.访问问答页面,判断是否成功登录

因为没有登陆的话,无法对某人进行提问且会进入登录页面,所以利用这个进行测试,是否成功登录。。

headers={
'Accept':'*/*',
'Accept-Encoding':'gzip, deflate, br',
'Accept-Language':'zh-CN,zh;q=0.8',
    'Cookie':cookies[0],
    'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36',
'hd-token':'hello',
'X-Requested-With':'XMLHttpRequest'
}
    req=requests.Session()
    t=req.get(url='https://www.oschina.net/question/ask?user=3392136',headers=headers)
码云https://git.oschina.net/nanxun/monidenglukaiyuanzhongguo.git
github https://github.com/nanxung/Selenium-Python-.git

© 著作权归作者所有

共有 人打赏支持
南寻
粉丝 61
博文 90
码字总数 35772
作品 0
朝阳
程序员
加载中

评论(2)

南寻
南寻

引用来自“J_sky”的评论

楼主没有提到Selenium+Python环境配置的问题,新人可能直接拿了代码就跑,当然象我这样菜的人可能比较少。
except Exception as e:
print(e)
logger.warning("失败 %s!" % account)
finally:
try:
browser.quit()
except Exception:
pass

这里如果加个打印错误信息就方便多了。

mac os+selenium2+chrome驱动+python3
http://blog.csdn.net/zxy987872674/article/details/53082896
码云上的代码传的比较急,过几天整理整理
J_sky
J_sky
楼主没有提到Selenium+Python环境配置的问题,新人可能直接拿了代码就跑,当然象我这样菜的人可能比较少。
except Exception as e:
print(e)
logger.warning("失败 %s!" % account)
finally:
try:
browser.quit()
except Exception:
pass

这里如果加个打印错误信息就方便多了。

mac os+selenium2+chrome驱动+python3
http://blog.csdn.net/zxy987872674/article/details/53082896
PhalApi-APK--APK文件解包处理

PhalApi-APK -- APK文件解包处理 前言 应为笔者这边涉及到的项目有需求对APK进行解包的操作,所以贡献此扩展希望大家喜欢 附上: 官网地址:http://www.phalapi.net/ 开源中国Git地址:http://g...

喵了_个咪
2016/03/13
44
0
[python爬虫] Selenium常见元素定位方法和操作的学习介绍

这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法、鼠标操作、键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~ 前文目录: [Python爬虫] 在Windo...

Eastmount
2016/07/10
0
0
Laravel 5.1 + OAuth2 PasswordGrant(密码授权模式)

背景简述 本文意在搭建一个通用的应用后端服务环境, 账号验证是应用的基础环境之一. OAuth2可提供安全的验证环境, 以accesstoken作为访问安全资源的令牌, 作为单一的应用端与后端的交互方式,...

黑狗007
2015/10/22
3.8K
9
模拟登录流程

不管是抢购火车票还是电商网站上抢购商品,如果在节假日没有抢购工具是很难靠手动抢到的,所以市面上的抢购工具也是层出不穷,但流程都是差不多的,大体上分为2步: 今天主要介绍一下第一步:...

ksfzhaohui
2016/08/13
1K
7
基于PhalApi的Smarty拓展

基于PhalApi的Smarty拓展 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 用过的童鞋都知道PhalApi是一个Api框架不提供view层的功能,但是很多童鞋有开发一个自...

喵了_个咪
2016/07/04
431
4
selenium+python设置爬虫代理IP

selenium+python设置爬虫代理IP 1. 背景 在使用selenium浏览器渲染技术,爬取网站信息时,一般来说,速度是很慢的。而且一般需要用到这种技术爬取的网站,反爬技术都比较厉害,对IP的访问频率...

zwq912318834
2017/11/24
0
0
PhalApi-OSS--阿里云OSS包

PhalApi-OSS -- 阿里云OSS包 前言 日常大家都会选择文件服务器,阿里云的OSS当然是个不错的选择,可以存放大量的图片以及压缩文件等,还可以开启cdn加速,但是使用起来并不是那么的舒服,所以对O...

喵了_个咪
2016/03/13
88
0
PHP模拟登录并获取数据

cURL 是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数, 开发者可以从PHP手册中获取更多关于cURL信息。本文...

Louis_88
2015/09/19
99
0
使用Open Live Writer发布博客至OsChina开源中国博客

一.关于 Open Live Writer 微软推出的一款能够免费使用的博客写作软件,主要为用户提供博客在线撰写和编辑功能,可以离线编辑,联网时同步到各大博客网站上去。 接下来,介绍如何使用这款工具...

Jacktanger
2016/11/26
320
3
PhalApi官网发布和开源团队招募

官网发布 怀着激动的心情,我们的PhalApi官网终于上线了!虽然暂时还是比较简单的,而且网址也是IP(因为国外的服务器还在购买中),但这些都是暂时的!因为在不远的将来,我们会在www.phala...

暗夜在火星
2015/02/12
0
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【RocketMQ】Message存储笔记

概述 消息中间件存储分为三种,一是保存在内存中,速度快但会因为系统宕机等因素造成消息丢失;二是保存在内存中,同时定时将消息写入DB中,好处是持久化消息,如何读写DB是MQ的瓶颈;三是内...

SaintTinyBoy
2分钟前
0
0
Android应用Context详解及源码解析

Android应用Context详解及源码解析 本文定位:优质文章收集 本文转载 1 背景 今天突然想起之前在上家公司(做TV与BOX盒子)时有好几个人问过我关于Android的Context到底是啥的问题,所以就马...

lichuangnk
34分钟前
0
0
PostgreSQL的昨天今天和明天

PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS), 也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。 这个起源于伯克利(...

闻术苑
38分钟前
0
0
Mysql对自增主键ID进行重新排序

1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2,添加新主键字段: ALTER TABLE `table_name` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST; 3,设置新主键: ALTER TABLE `table_nam......

niithub
44分钟前
0
0
福利篇:免费csdn vip账号分享

分享一个发布免费csdn vip账号的网站:啰嗦vip www.lostvip.com , 各种软件开发类的视频教程:慕课网、动脑学院、黑马各大培训机构VIP视频教程,非常不错!

在水一方发盐人
51分钟前
0
0
Nginx+Tomcat搭建高性能负载均衡集群

一、 工具   nginx-1.8.0   apache-tomcat-6.0.33 二、 目标   实现高性能负载均衡的Tomcat集群:    三、 步骤   1、首先下载Nginx,要下载稳定版:      2、然后解压两个Tom...

码代码的小司机
51分钟前
0
0
Centos7编译安装ntp-4.2.8p11

Centos7编译安装ntp-4.2.8p11 背景 因公司做等保评级,在进行安全漏洞检测时发现ntp需要升级到ntp-4.2.7p25以上版本,经过一番搜索,没有该版本及新版本ntp的yum安装包,所以只能编译安装了,...

阿dai
58分钟前
0
0
antd pro 新增模块的步骤

index.js是整个项目的入口文件。 // 1. Initializeconst app = dva({ history: createHistory(),});// 2. Pluginsapp.use(createLoading());// 3. Register global modelapp.model......

灯下草虫鸣_
今天
0
0
Cisco VPN在win10下报Error 56的解决办法

问题描述 Cisco VPN在win10下报Error 56: The Cisco Systems, Inc. VPN Service has not been started 解决方案 方案一:在计算机管理-》服务 查看Cisco Systems, Inc. VPN Service服务是否存...

chenfj_fer
今天
0
0
Weblogic问题解决记录

问题:点击登录,页面刷新但是不进去管理界面。解决:删除cookies再登录。

wffger
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部