selenium(四)鼠标操作

selenium 提供的鼠标操作的方法

首先导入相关包:
from selenium.webdriver import ActionChains

需要先实例化鼠标对象:
action = ActionChains(driver)

操作方法:
1.context_click(element)------右键

2.double_click(element)-------双击

3.drag_and_drop(source,target)-------鼠标拖动source,target都是元素

4.move_to_element(element)------悬停

5.perform()--------执行,用来执行以上所有鼠标操作
import time
from selenium import webdriver
from selenium.webdriver import ActionChains

"""
获取网站第一个超链接文本内容及超链接地址
"""
driver = webdriver.Chrome()
# driver.get("https://www.jianshu.com/sign_up")
# 实例化鼠标对象
action = ActionChains(driver)

mark = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div/form/div[2]/input[2]")
action.context_click(mark)
# 找到昵称输入框并输入文本admin
nickname = driver.find_element_by_id("user_nickname")
nickname.send_keys("admin")
# 双击选中admin
action.double_click(nickname)
time.sleep(3)
source = driver.find_element_by_link_text("登录")
target = driver.find_element_by_xpath('//*[@type="password"]')
# 拖拽登录按钮到密码输入框
action.drag_and_drop(source,target)
# 在下载二维码图片上悬停查看二维码
mark1 = driver.find_element_by_xpath("//body/div/div[2]/div[1]/div[1]")
action.move_to_element(mark1)
time.sleep(3)
action.perform()
driver.quit()

6.鼠标单元素拖动,主要应用于滑动块形式的验证码操作
拖动事件方法:action.drag_and_drop_by_offset(element,x,y)
x,y表示单元素横向与纵向移动的距离,单位为像素
import time
from selenium import webdriver
from selenium.webdriver import ActionChains


driver = webdriver.Chrome()

# 实例化鼠标对象
action = ActionChains(driver)
driver.get("https://reg.jd.com/p/regPage?ignore=1")
driver.maximize_window()
# 实例化鼠标对象
action = ActionChains(driver)
# 同意用户协议
driver.find_element_by_xpath("//div[2]/button").click()
# 在手机号码输入框输入手机号码
driver.find_element_by_id("form-phone").send_keys("13800000000")
time.sleep(3)
# 点击验证码按钮
driver.find_element_by_xpath('//*[@clstag="pageclick|keycount|reg_puser_201804031|7"]').click()
time.sleep(5)
# 找到滑块元素
mark2 = driver.find_element_by_css_selector('[class="JDJRV-slide-inner JDJRV-slide-btn"]')
# 滑动滑块
action.drag_and_drop_by_offset(mark2,180,0)
time.sleep(3)
# 执行鼠标操作
action.perform()
driver.quit()

在Java中使用Selenium控制鼠标操作可以通过Actions类来实现。以下是一个简单的示例代码,演示了如何使用Selenium控制鼠标移动、点击和拖放操作: ```java import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.interactions.Actions; public class MouseControlExample { public static void main(String[] args) { // 设置 ChromeDriver 路径 System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); // 创建一个新的 WebDriver 实例 WebDriver driver = new ChromeDriver(); // 打开网页 driver.get("https://www.example.com"); // 定位到需要进行鼠标操作的元素 WebElement element = driver.findElement(By.id("element-id")); // 创建一个 Actions 对象 Actions actions = new Actions(driver); // 鼠标移动到元素上 actions.moveToElement(element).perform(); // 鼠标点击元素 actions.click().perform(); // 鼠标拖放操作示例 WebElement sourceElement = driver.findElement(By.id("source-element")); WebElement targetElement = driver.findElement(By.id("target-element")); actions.dragAndDrop(sourceElement, targetElement).perform(); // 关闭浏览器 driver.quit(); } } ``` 请确保已经正确设置了ChromeDriver的路径,并将"element-id"替换为需要操作的元素的ID。这个示例代码演示了移动到元素、点击元素和拖放操作的基本用法,你可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值