1、关于Selenium提供了很多元素定位方法,这里不再赘述了。本文主要学习和了解JQuery的定位; 2、那为什么还要做JQuery进行定位呢?因为有的页面使用Selenium方法不能解决,所以可以尝试使用JQuery定位。
1 JQuery定位说明
1.1 JQuery定位方法
JQuery
定位方法有两种:
# 1、使用JQuery选择器来完成元素操作(直接获取对应的元素);
# 2、使用JQuery遍历来选择元素(用于层级较为复杂的页面元素获取)。
JQuery
语法:
$(selector).action()
JQuery
通过$
符号定义,selector
主要用于获取基本的HTML
元素,action()
用于实现对获取元素的基本操作。
1.2 JQuery最常用的三个操作
$(selector).val("input_value")
:input_value
为输入的文本信息;$(selector).val("")
:清空输入的内容;$(selector).click()
:单击操作。
1.3 JQuery一个示例
- 测试对象为禅道的登陆界面: 在这里插入图片描述
1.3.1 用户名输入框
- 页面源码:
<input class="form-control" type="text" name="account" id="account" autocomplete="off" autofocus="">
- 在控制台中输入
$("input")
可以看到有3个内容,鼠标放到第一个,我们发现是用户名的输入框,如下: 在这里插入图片描述 - 那么说明用户名的选择器为:
$("input:first")
在这里插入图片描述
1.3.2 密码输入框
- 页面源码:
<input class="form-control" type="password" name="password" autocomplete="off">
- 同理可得密码的选择器为:
$(":password")
; 在这里插入图片描述
1.3.3 登陆按钮
- 页面源码:
<button type="submit" id="submit" class="btn btn-primary" data-loading="稍候...">登录</button>
- 选择器为:
$(":button")
时,显示两个按钮,其中第二个为登陆按钮: 在这里插入图片描述 - 那么登陆按钮的选择器为:
$(":button")[1]
: 在这里插入图片描述
1.3.4 完整代码
代码语言:python代码运行次数:0复制# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/13
# 文件名称:test_zentao.py
# 作用:JQuery定位
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://localhost/zentao/user-login.html")
driver.implicitly_wait(10)
user_name = "$('input:first').val('admin')"
driver.execute_script(user_name)
time.sleep(0.5)
pass_wd = "$(':password').val('ZenTao123456')"
driver.execute_script(pass_wd)
time.sleep(1)
login_but = "$(':button')[1].click()"
driver.execute_script(login_but)
time.sleep(2)
driver.quit()
2 JQuery选择器
2.1 常用选择器列表
选择器 | 示例 | 说明 |
---|---|---|
|
| 所有元素 |
|
|
|
|
| 所有 |
|
| 所有 |
|
| 所有 |
| $("p:first") | 第一个 |
|
| 最后一个 |
|
| 所有偶数 |
|
| 所有奇数 |
|
| 列表中的第三个元素( |
|
| 列出 |
|
| 列出 |
|
| 所有不为空的 |
|
| 所有标题元素 |
| 所有动画元素 | |
|
| 包含指定字符串 |
|
| 无子(元素)节点的所有元素 |
|
| 所有隐藏的 |
|
| 所有可见的表格 |
|
| 所有带有匹配选择的元素 |
|
| 所有带有 |
|
| 所有 |
|
| 所有 |
|
| 所有 |
|
| 所有 |
|
| 所有 |
|
| 所有 t |
|
| 所有 |
|
| 所有 |
|
| 所有 |
|
| 所有 |
|
| 所有 |
|
| 所有 |
|
| 所有激活的 |
|
| 所有禁用的 |
|
| 所有被选取的 |
|
| 所有被选中的 |
2.2 思考
- 接之前的实例,登陆到禅道系统后,点击左边的【项目】:
$(a[data-app='project']).click()
: 在这里插入图片描述 - 点击右上角的【创建项目】:
$([href='/zentao/project-createGuide-0.html']:first)
: 在这里插入图片描述 - 点击【瀑布】模式: 在这里插入图片描述
- 看不能进入创建项目的界面: 在这里插入图片描述
- 此处代码省略,可自行尝试。
我正在参与 2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!