基于 Selenium 的 Python 脚本,通过 Chrome 浏览器自动化登录 Web 资产。 对于 Web 资产的登录,主要是代填用户名和密码,可分解成以下三个动作:
- 输入用户名
- 输入密码
- 点击登录按钮
由于各类验证码复杂且不统一,暂不考虑做自动化代填各类验证码。后续计划,会弹出一个自定义的输入框,让用户手动输入,再进行代填,或者在步骤脚本中做优化。
基于以上情况,创建 Web 资产需要填写对应的三个标签选择器,登录时通过 Selenium 控制 Chrome 浏览器执行以下默认动作:
- 查找 username input标签,输入账号用户名
- 查找 password input标签,输入账号密码
- 查找 login 按钮,执行点击,
为了满足一些复杂的登录逻辑,还可以编写步骤脚本。 步骤脚本是 list 格式的 JSON 数据,如下所示:
[
{
"step": 1,
"value": "{USERNAME}",
"target": "name=accessKey",
"command": "type"
},
{
"step": 2,
"value": "{SECRET}",
"target": "name=secretKey",
"command": "type"
},
{
"step": 3,
"value": "",
"target": "id=do-login",
"command": "click"
}
]
各字段含义:
- step 指的是执行顺序,主要是数字 Number
- value 指的是需要输入的值
- 使用 {USERNAME} 和 {SECRET} 指代账号中的用户名和密码
- target 指的是使用的标签选择器
- command 指的是执行的动作 ( type | click )
- type 输入 value 值
- click 点击按钮
- select_frame 切换到 iframe 页面操作( v3.2 新增) 如果需要返回默认页, target 可设置为 “index=-1”,返回默认页面
target 标签选择器语法,参考了 Chrome 浏览器插件 Selenium IDE 导出的 side 脚本,语法类似 by_name=value,by_name 可以是:name|id|css|xpath
,target 示例: name=secretKey
、 id=do-login
,