selenium+python实现自动化登录

工作需要实现一个微博自动登录的操作,在网上差了一些资料,决定使用selenium+python实现

selenium 是一个web的自动化测试工具,主流一般配合java或者python使用,我这里使用的是python,可支持的浏览器基本包括所有主流浏览器IE、Mozilla Firefox、Google Chrome。

安装过程不再赘述,但是后续使用时,发现很多报错与版本兼容性有关,因此这里列出可用的版本搭配:

python2.7

selenium3.0.2

火狐驱动geckodriver.exe  版本v0.14.0  (使用高版本会出现异常报错)

火狐浏览器52.0.2 (32 位)  (版本太低或53的最新版本,都会报错)

 1 #encoding=utf-8
 2 from selenium import webdriver
 3 import time
 4 import os
 5
 6 #模拟登陆weibo
 7
 8 def getCookies(weibo):
 9     """ 获取Cookies """
10     cookies = []
11     driver = webdriver.Firefox()
12     time.sleep(3)   #sleep一下,否则有可能报错
13     driver.get("https://weibo.com/login/")
14     #cur_path=os.getcwd()
15     #fileSuc = open(cur_path+"/login.html", ‘w‘)
16     #fileSuc.write(driver.page_source)
17     #用户名 密码
18     elem_user = driver.find_element_by_xpath(‘//input[@id="loginname"]‘)
19     elem_user.send_keys(‘*****@163.com‘) #浏览器版本不匹配的时候这里可能报错
20     elem_pwd = driver.find_element_by_xpath(‘//input[@type="password"]‘)
21     elem_pwd.send_keys(‘*****‘)
22
23     commit = driver.find_element_by_xpath(‘//a[@node-type="submitBtn"]‘)
24     commit.click()
25     time.sleep(3)
26     #fileSuc1 = open(cur_path+"/weibo2.html", ‘w‘)
27     #fileSuc1.write(driver.page_source)
28     #print driver.title
29     #登录成功后获取cookie
30     cookie = {}
31     if "微博-随时随地发现新鲜事" in driver.title:
32         for elem in driver.get_cookies():
33             cookie[elem["name"]] = elem["value"]
34         if len(cookie) > 0:
35             logger.warning("Get Cookie Successful: %s" % account)
36             cookies.append(cookie)
37             continue
38     else:
39         logger.warning("Get Cookie Failed: %s!" % account)
40
41     driver.close()
42     driver.quit()
43     return cookies
44
45 cookies = getCookies(myWeiBo)
46 print cookies
47 logger.warning("Get Cookies Finish!( Num:%d)" % len(cookies))
find_element_by_xpath用来定位控件的位置,定位不到的时候,可以把网页的代码保存下来看看是否有对应的控件,如果是安全控件或者登录在js里实现,这种方法是获取不到的。
另外还有find_element_by_name、find_element_by_id的方法,但是我使用的时候出现找不到情况,怀疑是浏览器版本不匹配的原因。
时间: 2024-08-27 10:32:12

selenium+python实现自动化登录的相关文章

Appium appium+Android+selenium+python web 自动化 / 手机自动化 [分享] (windows)

前期准备 1.windows操作系统2.python3.53.selenium4.chrome浏览器5.chrome浏览器驱动6.pycharm7.appium8.JDK9.SDK10.安卓模拟器(genymotion)或真机11.任意apk12.使用安卓模拟器genymotion需要virtual box(个别的会补充,软件版本自己随意) 一.知识补充(1) Appium介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及

(selenium+python)_UI自动化12_web UI自动化实例(以京东搜索加车为例)

前言 Selenium 是一个用于Web网页UI自动化测试的开源框架,可以驱动浏览器模拟用户操作.在此以京东搜索加车为实例,展示下selenium+python如何模拟用户操作,进行自动化测试. 环境搭建 MAC下selenium环境搭建可参考:https://www.cnblogs.com/mini-monkey/p/12074914.html Windows版本环境搭建待后期更新. 启动浏览器 前提:已下载安装对应浏览器驱动 1,导入webdriver包 2,启动浏览器 备注: seleni

Selenium + python的自动化框架搭建

selenium是一个web的自动化测试工具,和其它的自动化工具相比来说其最主要的特色是跨平台.跨浏览器.支持windows.linux.MAC,支持ie.ff.safari.opera.chrome等.此外还有一个特色是支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能. 关于selenium的原理.架构.使用等可以参考其官网的资料,这里记录如何搭建一个使用python的selenium测试用例开发环境.其实用python来开发selenium的方法有2种:

利用python+seleniumUI自动化登录获取cookie后再去测试接口,今天终于搞定了

#coding=utf-8from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionimport unittest,timeimport requests #登录模块函数def login(): u'''gdtmpd登录''' driver=webdriver.Chrome() driver.get('登录地址url') nowhandle=driver.current_w

(selenium+python)_UI自动化04_定位iframe框架内元素

什么是iframe? iframe是HTML标签,作用是文档中的文档(即在当前 HTML 文档中嵌入另一个HTML文档),或者浮动的框架(FRAME).iframe元素会创建包含另外一个文档的内联框架(即行内框架). iframe框架内元素定位 selenium中定位iframe内元素,需先切换到iframe框架内,然后再进行元素定位,否则会报错找不到元素. 一.iframe常用切换 driver.switch_to_frame(iframe_element) # 切换至iframe drive

(selenium+python)_UI自动化05_定位select下拉列表

前言 web网页大多选择功能使用下拉列表方式实现,在selenium进行自动化过程中,可通过Select类实现下拉列表的多种操作. Select常用方法 select_by_index() # 通过索引定位-选项 select_by_value() # 通过value值定位-选项 select_by_visible_text() # 通过文本值定位-选项 deselect_all() # 取消所有选项 deselect_by_index() # 取消对应index选项 deselect_by_v

(selenium+python)_UI自动化09_定位alert弹窗

前言 web网站中某些点击操作会触发alert弹窗.在selenium进行自动化过程中,模拟操作alert弹窗时直接定位会报错找不到元素.需要先切换到alert然后用alert处理方法进行操作. alert常用方法 switch_to.alert # 切换到alert弹窗 text # 获取弹出框文本 accept() # 确定 dismiss() # 取消 send_keys() # 输入 实例 模拟操作alert步骤如下: 点击某按钮弹出alert-->切换到alert-->操作alert

(selenium+python)_UI自动化10_cookie常用操作

前言 selenium进行自动化过程中,常需要用到cookie操作,常用的cookie操作有:获取所有cookie.获取具体cookie值.删除cookie.添加cookie等. Chrome中查看cookie 1. Chrome打开开发者模式 windows:快捷键F12 Mac ios :快捷键option+command+i 2. 查看cookie 点击Application->点击cookies,查看cookie信息 cookie常用方法 driver.get_cookies() # 获

(selenium+python)_UI自动化03_定位新开窗口内元素

前言 浏览器点击web网站链接时,经常在当前窗口的基础上打开另一个新的窗口.如下: selenium定位新窗口元素,需要先切换到新窗口,再定位元素,否则会出现报错“NoSuchElementException: Message: no such element...” 定位新窗口元素 1,获得窗口句柄 driver.current_window_handle # 获得当前窗口句柄 driver.window_handles # 获得所有窗口句柄 2,切换至新窗口 all_pages = driv