输入
原文:https://go-rod.github.io/i18n/zh-CN/#/input
收录该文档时间: 2024-11-21T08:08:27+08:00
输入
Rod 提供了很多方法来模拟人工输入,比如鼠标点击或者键盘按键。
鼠标点击
模拟鼠标点击一个元素:
1
2
3
4
5
| // 左击
page.MustElement("button").MustClick()
// 右击
_ = page.MustElement("button").Click(proto.InputMouseButtonRight, 1)
|
文本输入
模拟输入:
1
2
3
4
| el := page.MustElement(`[type="text"]`)
el.MustInput("Jack")
fmt.Println(el.MustText()) // 使用 MustText 来获取文本
|
删除输入框中的文本
模拟人的行为即可。 选中所有文本,用一个空字符串替换:
1
| page.MustElement(`[type="text"]`).MustSelectAllText().MustInput("")
|
可以使用 SelectText
替换部分文本。
时间输入
支持的输入类型有 date、datetime-local、month 和 time。
1
| page.MustElement(`[type="date"]`).MustInputTime(time.Now())
|
输入按键组合
例如,像人类一样输入大写 “a” 的完整动作包括:
- 按住
Shift
键 - 按住然后松开
A
键 - 松开
Shift
键
可以使用 Page.KeyAction
或 Element.KeyActions
帮助函数:
1
| page.KeyActions().Press(input.ShiftLeft).Type('A').MustDo()
|
KeyActions
帮助函数将自动松开所有按键,此处 input.ShiftLeft
将被自动松开。
要模拟诸如 CTRL + Enter
等快捷键,可以这样做:
1
| page.KeyActions().Press(input.ControlLeft).Type(input.Enter).MustDo()
|
复选框
像真人一样点击即可:
1
2
3
4
5
6
| el := page.MustElement(`[type="checkbox"]`)
// check it if not checked
if !el.MustProperty("checked").Bool() {
el.MustClick()
}
|
选择选项
选择
中的选项。
下面的代码会选择包含文本 “B” 或 “C” 的选项:
1
| page.MustElement("select").MustSelect("B", "C")
|
也可以使用正则表达式或 CSS 选择器来选择选项:
1
2
3
4
| _ = page.MustElement("select").Select([]string{`^B$`}, true, rod.SelectorTypeRegex)
// 设置为 false 来取消
_ = page.MustElement("select").Select([]string{`[value="c"]`}, false, rod.SelectorTypeCSSSector)
|
设置文件
使用 SetFiles
为文件输入元素设置文件:
1
| page.MustElement(`[type=file]`).MustSetFiles("a.jpg", "b.pdf")
|
鼠标、键盘和触摸
也可以使用 page.Mouse
、page.Keyboard
或 page.Touch
模拟底层输入。 例如,可以在 Rod 的单元测试中搜索 drag 来了解如何模拟拖动。