1、前言
主要用到python的selenium库,通过模仿浏览器行为+定位登录所需的标签位置,实现网页登录功能.最后在码云(gitee)上测试自动登录功能.
2、selenium定位网页元素
关于selenium的使用前准备可以看到我之前的一篇文章python网络爬虫--下载图片.
我们有许多方法对页面的元素进行定位,对于不同的元素,我们使用最优的定位方法即可。Selenium提供了下面的方法进行元素定位:
- find_element_by_id
- find_element_by_name
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
通过一个例子来大概说明怎么使用这些方法
<html><body><form id="loginForm"><input name="username" type="text" /><input name="password" type="password" /><input name="continue" type="submit" value="Login" /></form></body>
<html>
2.1 根据Name定位
userName = driver.find_element_by_name("username")
在定位到元素后,我们要将对应的用户名填入表单,使用send_keys方法
userName.send_keys("UserName")
2.2 根据css选择器定位
passWord = driver.find_element_by_css_selector("input[type='password']")
passWord.send_keys("PassWord")
3、Example
通过模拟登录码云(gitee),测试是否成功
首先,在浏览器输入地址https://gitee.com/login,进入登录界面
然后,进入开发者模式,找到表单对应的元素.
从以下三张图可以看到用户名,密码,登录按钮分别对应的元素.然后通过上面介绍的元素选择方法,将对应的值提供给表单即可.
具体代码如下:
from selenium import webdriver
import timedef main():url = "https://gitee.com/login"# 这里改为你的chromedriver地址ChromeDriverPath = "path/to/chromedriver"driver = webdriver.Chrome(executable_path=ChromeDriverPath)driver.get(url)# 这里将UserName改为你自己的driver.find_element_by_id("user_login").send_keys("UserName")# 修改PassWorddriver.find_element_by_id("user_password").send_keys("PassWord")# 获取到登录按钮的driver后,使用click()函数,模拟点击buttondriver.find_element_by_css_selector("input[name='commit']").click()time.sleep(20)driver.quit()if __name__ == "__main__":main()



















