1.百度登录

哈,学selenium,第一个想法就是拿百度登录试试,是的没错,就是它了!

from selenium import webdriver  #导入webdriver

import time  #导入时间模块

b = webdriver.Firefox()  #打开火狐浏览器

b.maximize_window()  #窗口最大化

b.get('http://www.baidu.com')  #打开百度首页

time.sleep(2)  #强制等待两秒,等网页完全打开

b.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[3]/a[7]').click()  #打开登录框

time.sleep(2)  #强制等待两秒,等登录框弹出

b.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn').click()  #切换到账号密码登录

b.find_element_by_name('userName').send_keys('12345678')  #输入账号

b.find_element_by_name('password').send_keys('12345678')  #输入密码

b.find_element_by_name('memberPass').click()  #取消密码保存

b.find_element_by_id('TANGRAM__PSP_10__submit').click()  #登录

结果:点击登录后弹出手机号验证,所以登录未完成,不过过程代码应该是没错

2.淘宝

在百度受挫之后,第二个想到的就是淘宝。

from selenium import webdriver  #导入webdriver

import time  #导入时间

from selenium.webdriver.common.keys import Keys  #导入Keys

b = webdriver.Firefox()  #打开火狐浏览器

b.maximize_window()  #窗口最大化

b.get('https://www.taobao.com/')  #打开淘宝网

time.sleep(2)  #强制等待2秒,等网页打开

b.find_element_by_xpath('//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]').click()  #点击跳转登录页面

time.sleep(2)  #强制等待2秒,进入登录页面

b.find_element_by_id('J_Quick2Static').click()  #选择账号密码登录模式

time.sleep(2)  #强制等待2秒,等登录窗口打开

b.switch_to.active_element.send_keys('12345678')  #输入账号

b.find_element_by_name('TPL_password').send_keys('12345678')  #输入密码

b.find_element_by_id('J_Quick2Static').click()  #点击登录

结果:又失败了,会出现一个滑块验证,我手工把滑块完成,显示“哎呀,出错了,点击刷新再来一次(error:N18f4f)”,刷新后再次操作滑块,依然报错。

后来百度得知,是淘宝网站监测到使用了自动化工具,所以这个滑块是无法完成的……

另外补充一点,账号输入框元素定位成功,但是无法输入,显示‘element is not reachable by keyboard’,有人说是firefox浏览器问题,于是使用另外的方式去输入了。

browser.switch_to.active_element.send_keys('****')

按照字面意思理解,应该是获取当前活动状态的元素,直接操作吧。

总而言之,虽然失败了,但是真不是我的问题,自动化工具的监测,还不是我这样一个小萌新能解决的,希望以后能搞定吧。

3.QQ邮箱

三大流氓 BAT 啊,BA 都试过了,轮到 T 了。

from selenium import webdriver  #导入webdriver

import time  #导入时间模块

b = webdriver.Firefox()  #打开火狐浏览器

b.maximize_window()  #窗口最大化

b.get('https://mail.qq.com/')  #进入qq邮箱首页

time.sleep(2)  #强制等待两秒

b.switch_to.frame('login_frame')  #转入登录模块所在的 frame

b.find_element_by_id('switcher_plogin').click()  #点击进入账号密码登录模式

time.sleep(2)  #强制等待两秒

b.find_element_by_id('u').send_keys('12345678@qq.com')  #输入账号

b.find_element_by_id('p').send_keys('12345678')  #输入密码

b.find_element_by_id('p_low_login_enable').click()  #点击选择记住密码:练习时最好别选,不然很容易触发验证

b.find_element_by_id('login_button').click()  #登录

结果:登录成功了。

总结:登录验证确实很头疼,不过初入门的也不需要对自己要求这么高,一般中小型公司自己的网站应该都没有反自动化工具的功能吧,基本上提供个账号+密码就可以登录了。

转载于:https://www.cnblogs.com/maigeyouziba/p/11186683.html

selenium03-三个简单的web自动化实例相关推荐

  1. 简单的web自动化环境安装

    1.浏览器安装     在这里我们选择安装最新版本的火狐浏览器,直接选择默认安装即可,安装完成后讲浏览器安装路径加入环境变量.由于是最新版本(目前是:66.0.3),所以需要浏览器驱动.      浏 ...

  2. python的web自动化框架实例_Selenium基于Python web自动化测试框架 -- PO

    关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...

  3. 从零开始Web自动化(三):通过selenium,9行代码实现打字网站的自动打字

    写在前面: 这个专栏主要是分享一些python.Web自动化的相关知识. 需要你具备一定的python基础,参考教程:廖雪峰python教程 掌握红框中的内容即可! 通过实战项目让你学会包括:pyth ...

  4. Selenium Web 自动化 - 项目实战(三)

    Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述 2 框架更改总览 3 框架更改详解   3.1 解析新增页面目录   3.2 解析新增测试用例目录 ...

  5. ios php mysql实例_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  6. python自动化(三)web自动化:2.web自动化工具selenium讲解

    一.selenium简介 1.什么是selenium Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, ...

  7. 基于OSGi的Virgo Server最简单Spring web实例

    一:开发工具下载与环境搭建 1.下载并安装JDK6u30版本,下载地址如下: http://www.oracle.com/technetwork/java/javasebusiness/downloa ...

  8. Web自动化—简单了解

    Web自动化-简单了解 自动化概念 自动化的好处 自动化测试的分类 web自动化条件和使用范围 web自动化常用工具 元素定位 Xpath CSS选择器 自动化概念 软件自动化测试就是通过测试工具或者 ...

  9. 如何去掉超链接下划线用三个简单的实例来说明

    去掉超链接的下划线,需要用样式表CSS来控制,如果你暂时不想深入了解CSS的概念,下面将举三个简单的实例来说明如何控制超链接的下划线.用记事本打开网页源代码(也可以先用IE打开网页,然后点击IE菜单栏 ...

  10. web自动化简单易学

    在学习web自动化时,咱们需要使用到火狐浏览器,没有的小伙伴下载一下, 注(我下载的是这个,如果版本过高,接下来有俩插件会不匹配.) 接下来是火狐浏览器的安装教程 这个是需要打开pycharm   下 ...

最新文章

  1. 实习生离职,HR恼羞成怒:我要全行业封杀你
  2. Zookeeper概念学习系列之分布式事务
  3. 东农计算机应用与技术离线作业,东农16春《计算机应用与技术》在线作业.doc
  4. python【数据结构与算法】分治算法之大整数乘法
  5. 垃圾回收器的基本原理是什么?
  6. 大三时候实现的,关于大整数(超过long范围)加减乘除操作的头文件,并包含了实现RSA加解密的函数...
  7. 代码实现sql编译器_TiDB-Wasm 原理与实现 | Hackathon 优秀项目介绍
  8. python重定向cookie_模拟登陆中 302 重定向和 cookies 的一些困惑
  9. 一个社交电商小程序配套的平台接
  10. AndroidStudio安卓原生开发_UI控件_SeekBar_ProgressBar_DataPicker---Android原生开发工作笔记99
  11. [转]bookmark整理之.NET编程相关
  12. XPath解析网页学习笔记
  13. 中国石油大学(北京)-《 修井工程》第二阶段在线作业
  14. flv.js简单使用示例
  15. 基于jQuery的图片懒加载插件
  16. 根据二叉树先序遍历和中序遍历构建二叉树
  17. 代理服务器导致连接不上局域网问题
  18. POJ 1984 Navigation Nightmare 多权值并查集
  19. unresolved external symbol __imp__timeGetTime@0
  20. [转]如果你知道自己40岁的时候一定会被裁员,那你会做什么?

热门文章

  1. 千万级用户-亿级请求的平台架构演变
  2. 蘑菇街移动端混合开发体系的研发与实践
  3. tomcat等web服务器的工作原理
  4. 一事无成,感觉自己是个 loser
  5. 什么样的公司值得加入?
  6. Spark 系列(十)—— Spark SQL 外部数据源
  7. Pychram - 使用介绍
  8. TortoiseSVN文件夹操作
  9. HTML5本地存储——IndexedDB二:索引
  10. Ibatis -- 一次执行多条SQL