鼠标操作
任何用于与网页进行交互的指针设备的表示形式.
一个鼠标仅可以完成3个操作:
按住按钮,松开按钮,还有移动光标。
Selenium组合了常见的操作并提供了方便的方法。
按住鼠标左键
这个方法包含2个操作,首先将光标移动到被操作元素的正中心,然后按下鼠标左键不松开。
这对于聚焦一个特殊元素很有用:
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/clickAndHold.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
点击鼠标左键
这个方法包含2个操作,首先将光标移动到被操作元素的正中心,然后按下鼠标左键后再松开。
另一种叫法“点击”:
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/clickAndRelease.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
点击鼠标备用按钮
鼠标一共有5个定义好的按钮:
- 0 — 左键 (默认值)
- 1 — 中间键 (当前不支持)
- 2 — 右键
- 3 — X1 (返回) 按钮
- 4 — X2 (前进) 按钮
点击鼠标右键
这个方法包含2个操作,首先将光标移动到被操作元素的正中心,然后点击鼠标右键。
另一种叫法“点击右键”:
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/rightClick.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
点击鼠标回退键
除了这个没有更方便的方法,只是点击鼠标回退按钮
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
Selenium v4.2
/examples/python/tests/actions_api/test_mouse.py
Selenium v4.2
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
Selenium v4.2
/examples/ruby/spec/actions_api/mouse_spec.rb
Selenium v4.5.0
/examples/javascript/test/actionsApi/mouse/backAndForwardClick.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
点击鼠标前进键
除了这个没有更方便的方法,只是点击鼠标前进按钮
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
Selenium v4.2
/examples/python/tests/actions_api/test_mouse.py
Selenium v4.2
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
Selenium v4.2
/examples/ruby/spec/actions_api/mouse_spec.rb
Selenium v4.5.0
/examples/javascript/test/actionsApi/mouse/backAndForwardClick.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
双击鼠标左键
这个方法包含2个操作,首先将光标移动到被操作元素的正中心,然后双击鼠标左键。
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/doubleClick.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
移动光标到元素上
这个方法是将光标移动到元素的中心点。
另一种叫法“悬停”。
元素必须在可视窗口范围内否则这条命令将会报错。
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/moveToElement.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
通过偏移量移动动光标
这些方法让光标先移动到指定的坐标原点,然后通过单位为px的偏移量进行光标相对原点的偏移移动。
注意光标位置必须在可视窗口区域否则会报错。
从元素中心点(原点)偏移
这个方法是指先将光标移动到元素中心点(原点),然后通过偏移量进行光标相对原点的偏移。
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/moveByOffset.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
从视窗左上角(原点)偏移
这个方法是指先将光标移动到视窗左上角(原点),然后通过偏移量进行光标相对原点的偏移。
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/moveByOffset.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
从当前光标位置(原点)偏移
这个方法是指光标位于当前位置(原点),然后通过偏移量进行光标相对原点的偏移。
如果之前没有移动过光标位置,则这个位置是视窗左上角(原点)。
注意当页面发生滚动后光标位置不会发生变化。
注意第一个参数指定为正数时向右移动,第二个参数指定为正数时向下移动。所以 moveByOffset(30, -10) 是指从当前光标位置向右移动30个像素位置和向上移动10个像素位置。
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/moveByOffset.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
拖放元素
这个方法首先在原元素上提交执行按下鼠标左键,移动到目标元素位置后是释放鼠标左键。
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/dragAndDrop.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt
通过偏移量拖放元素
这个方法首先在原元素上提交执行按下鼠标左键,通过给出的偏移量移动元素后释放鼠标左键。
/examples/java/src/test/java/dev/selenium/actions_api/MouseTest.java
/examples/python/tests/actions_api/test_mouse.py
/examples/dotnet/SeleniumDocs/ActionsAPI/MouseTest.cs
/examples/ruby/spec/actions_api/mouse_spec.rb
/examples/javascript/test/actionsApi/mouse/dragAndDrop.spec.js
/examples/kotlin/src/test/kotlin/dev/selenium/actions_api/MouseTest.kt