Loading... ### 1、前言 主要用到python的selenium库,通过模仿浏览器行为+定位登录所需的标签位置,实现网页登录功能.最后在码云(gitee)上测试自动登录功能. ### 2、selenium定位网页元素 关于selenium的使用前准备可以看到我之前的一篇文章[python网络爬虫--下载图片](http://kevinnan.org.cn/index.php/archives/211/). 我们有许多方法对页面的元素进行定位,对于不同的元素,我们使用最优的定位方法即可。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 <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定位 ```python userName = driver.find_element_by_name("username") ``` 在定位到元素后,我们要将对应的用户名填入表单,使用`send_keys`方法 ```python userName.send_keys("UserName") ``` #### 2.2 根据css选择器定位 ```python passWord = driver.find_element_by_css_selector("input[type='password']") passWord.send_keys("PassWord") ``` ### 3、Example 通过模拟登录`码云(gitee)`,测试是否成功 首先,在浏览器输入地址`https://gitee.com/login`,进入登录界面  然后,进入开发者模式,找到表单对应的元素. 从以下三张图可以看到`用户名`,`密码`,`登录按钮`分别对应的元素.然后通过上面介绍的元素选择方法,将对应的值提供给表单即可.    具体代码如下: ```python from selenium import webdriver import time def 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") # 修改PassWord driver.find_element_by_id("user_password").send_keys("PassWord") # 获取到登录按钮的driver后,使用click()函数,模拟点击button driver.find_element_by_css_selector("input[name='commit']").click() time.sleep(20) driver.quit() if __name__ == "__main__": main() ``` Last modification:January 20th, 2021 at 05:54 pm © 允许规范转载