最近在看《selenium2自动化测试实战》这本书,于是就想写个自动化脚本熟悉一下,这次就以自动登录新浪微博拿来练手吧。

工具

python:python-3.7.2
selenium:3.141.0
浏览器:Firefox

配置

使用selenium时,浏览器需要有对应版本的驱动,才能执行脚本,我用的是火狐浏览器,就下载对应的浏览器驱动geckodriver。下载好后,随便放入一个盘里面,然后在环境变量里的path加上驱动的路径,就可以直接调用geckodriver了。

测试

我们先来写一个test.py来测试环境有没有配置好

from selenium import webdriver     #导入webdriver模块     

browser=webdriver.Firefox()         #打开火狐浏览器
browser.get('https://www.weibo.com/')      #在浏览器里打开新浪微博

如果能成功打开这个界面,就说明我们的环境配置好了。接下来开始登陆吧

登录

from selenium import webdriver
import time

browser=webdriver.Firefox()
browser.get('https://www.weibo.com/')
user=input('请输入用户名')
passwd=input('请输入密码')

browser.add_cookie({'name':'loginname','value':user})
browser.add_cookie({'name':'passwd','value':passwd})

browser.find_element_by_xpath('//*[@id="loginname"]').send_keys(user)
browser.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div/div/div/div[3]/div[2]/div/input').send_keys(passwd)
time.sleep(3)
browser.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[2]/div/div[2]/div[1]/div[2]/div[1]/div/div/div/div[3]/div[6]/a').click()

第一次登录的话需要验证码,目前我还不知道怎么识别验证码并且填写出来,这就很尴尬了。。。以后如果有好的解决办法的话,会补上来的