前言
一般情况下我们在代码中操作web应用,都会使用协议,但当传输内容被加密,或出现其他状况时,会很难使用协议进行通信。
这种时候我们就可以考虑直接操作Web UI 来达到同样的效果
准备
现在Selenium的操作其实更新了,和以前有不同
驱动器安装:
firefox 驱动安装网址:https://github.com/mozilla/geckodriver/releases
还有 chrome 的驱动器,请自行上网搜索(笔者用的是firefox)
驱动器使用方法
- 可以将驱动器所在的目录放入系统变量的 path 中
- 在代码中导入驱动器的绝对路径
推荐第一种方法,但是我这边用的是第二种方法,第一种方法在路径的地方无需传参
简单操作一手
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建驱动对象
driver = webdriver.Firefox(executable_path="D:/geckodriver/geckodriver.exe")
# 使用驱动器打开网页
driver.get(url="http://localhost:8081/note/login.jsp") # 本地搭建的一个登陆网站
# 接下去以找ID为例,进行操作
# 找到 input 框
driver.find_element(By.ID, "uname").send_keys("admin") # send_keys 填入数据 By.ID意思是通过ID选择器,还有很多其他选择方法,请自行探索
driver.find_element(By.ID, "upwd").send_keys("admin")
driver.find_element(By.ID, "loginBtn").click() # click() 单击(指单击按钮)
# 关闭资源
driver.close()
# 这样就完成了一波简单的自动登录
# 一些常用操作
driver.back() # 网页回退
driver.forward() # 网页前进
driver.add_cookie() # 添加cookies
driver.maximize_window() # 最大化UI窗口
driver.page_source # 网页源代码
driver.current_url # 当前网页的url
# ...还有几个方法和属性自己查咯