selenium webdriver学习(十三)------------如何利用Actions类模拟鼠标和键盘的操作

selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面的时候,用到了一个Actions类。这一节主要分析一下这个Actions类。

这个actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作。对于这些操作,使用perform()方法进行执行。

actions类可以完成单一的操作,也可以完成几个操作的组合。

单一的操作

单一的操作是指鼠标和键盘的一个操作。如鼠标左键按下、弹起或输入一个字符串等。

前面涉及到鼠标键盘操作的一些方法,都可以使用actions类中的方法实现,比如:click,sendkeys。

 
  1. WebElement  element = dr.findElement(By.id("test"));   
  2. WebElement  element1 = dr.findElement(By.id("test1"));   
  3. element.sendKeys("test"); 
  4. element1.click; 
WebElement  element = dr.findElement(By.id("test"));  
 WebElement  element1 = dr.findElement(By.id("test1"));  
element.sendKeys("test");
element1.click;

用Actions类就可以这样实现:

  1. //新建一个action 
  2. Actions action=new Actions(driver); 
  3. //操作 
  4. WebElement element=dr.findElement(By.id("test")); 
  5. WebElement element1=dr.findElement(By.id("su")); 
  6. action.sendKeys(element,"test").perform(); 
  7. action.moveToElement(element1); 
  8. action.click().perform(); 
//新建一个action
Actions action=new Actions(driver);
//操作
WebElement element=dr.findElement(By.id("test"));
WebElement element1=dr.findElement(By.id("su"));
action.sendKeys(element,"test").perform();
action.moveToElement(element1);
action.click().perform();

看起来用Actions类实现click和sendKeys有点烦索

组合操作

组合操作就是几个动作连在一起进行操作。如对一个元素的拖放。

  1. (new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform();   
 (new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform();  

可以直接调用dragAndDrip()方法,也可以像下面濱示的一样把几个操作放一起实现

Java代码
  1. Action dragAndDrop = builder.clickAndHold(someElement) 
  2.        .moveToElement(otherElement) 
  3.        .release(otherElement) 
  4.        .build().perform(); 
Action dragAndDrop = builder.clickAndHold(someElement)
       .moveToElement(otherElement)
       .release(otherElement)
       .build().perform();

其他鼠标或键盘操作方法可以具体看一下API里面的org.openqa.selenium.interactions.Actions类

在Node.js中使用Selenium WebDriver模拟鼠标悬浮事件,可以通过`ActionBuilder`来实现。`ActionBuilder`提供了一系列用于创建复杂用户交互的方法。以下是一个使用Selenium WebDriver在Node.js中模拟鼠标悬浮事件的示例代码: 首先,确保你已经安装了Selenium WebDriver的Node.js客户端,如果没有安装,可以使用npm来安装: ```bash npm install selenium-webdriver ``` 然后,可以使用以下代码来模拟鼠标悬浮事件: ```javascript const webdriver = require('selenium-webdriver'); const By = webdriver.By; async function hoverElement(driver, selector) { // 使用ActionBuilder来创建一个动作序列 const actions = driver.actions({ async: true }); // 找到需要悬浮的元素 const element = await driver.findElement(By.css(selector)); // 创建鼠标悬浮的动作 const hover = actions.move({ origin: element }).perform(); // 执行动作 await hover; } // 使用示例 (async function example() { let driver = new webdriver.Builder().forBrowser('chrome').build(); try { // 打开页面 await driver.get('https://example.com'); // 模拟鼠标悬浮事件 await hoverElement(driver, '#hoverElement'); // 进行其他操作... } finally { await driver.quit(); } })(); ``` 在上面的代码中,`hoverElement`函数接受两个参数:一个WebDriver实例和一个选择器字符串。函数内部,我们使用`actions.move({ origin: element })`来创建一个移动到指定元素的动作,然后调用`perform()`方法来执行这个动作,从而实现鼠标悬浮的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值