Selenium RC DragAndDrop

本文介绍三种实现网页元素拖拽的方法:直接指定像素位置、拖拽到目标元素中心及使用鼠标事件模拟拖拽过程。提供了C#示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1) dragAndDrop - Locates the target element and drags the element by x pixels horizontally and y pixels vertically.

In the IDE this should look like;

Command - dragAndDrop
Target - [ locator of the target element ]
Value - [ (x-pixels),(y-pixels) ]

    - where x-pixels/y-pixels can be negative (left/up respectively) or positive (right/down respectively)

  1.          string dragLocator = @"//a[@id=abc]";  
  2.          string dropLocator = @"//td[text()='drop to here']";  
  3.   
  4. decimal dropX = selenium.GetElementPositionLeft(dropLocator);  
  5. decimal dropY = selenium.GetElementPositionTop(dropLocator);  
  6. decimal endX = selenium.GetElementWidth(dropLocator);  
  7. decimal endY = selenium.GetElementHeight(dropLocator);  
  8. endX = Math.Round(dropX + (endX / 2));  
  9. endY = Math.Round(dropY + (endY / 2));  
  10. String movementsString = "" + endX + "," + endY;  
  11.   
  12. selenium.DragAndDrop(dragLocator, movementsString);  
            string dragLocator = @"//a[@id=abc]";
            string dropLocator = @"//td[text()='drop to here']";

			decimal dropX = selenium.GetElementPositionLeft(dropLocator);
			decimal dropY = selenium.GetElementPositionTop(dropLocator);
			decimal endX = selenium.GetElementWidth(dropLocator);
			decimal endY = selenium.GetElementHeight(dropLocator);
			endX = Math.Round(dropX + (endX / 2));
			endY = Math.Round(dropY + (endY / 2));
			String movementsString = "" + endX + "," + endY;

			selenium.DragAndDrop(dragLocator, movementsString);

(2) dragAndDropToObject - Locates the target element and drags the element to the centre pixel location of the destination element

In the IDE this should look like;
Command - dragAndDropToObject Target - [ locator of the target element ] Value - [ locator of the destination element you want to drop it on top of ]
  1. string dragLocator = @"//a[@id=abc]";  
  2. string dropLocator = @"//td[text()='drop to here']";  
  3.   
  4. Selenium.DragAndDropToObject(dragLocator, dropLocator);  
            string dragLocator = @"//a[@id=abc]";
            string dropLocator = @"//td[text()='drop to here']";

            Selenium.DragAndDropToObject(dragLocator, dropLocator);

(3) Use MouseDownAt, MouseMoveAt, MouseUpAt to resolve drag and drop.

  1. string dragLocator = @"//a[@id=abc]";  
  2. string dropLocator = @"//td[text()='drop to here']";  
  3.   
  4.   
  5.     selenium.MouseMove(dragLocator);  
  6.     Thread.Sleep(3000);  
  7.     selenium.MouseDownAt(dragLocator, "0,0");  
  8.     Thread.Sleep(3000);  
  9.     selenium.MouseMoveAt(dropLocator, "0,0");  
  10.     Thread.Sleep(3000);  
  11.     selenium.MouseUpAt(dropLocator, "0,0");  
  12.     Thread.Sleep(3000);   
            string dragLocator = @"//a[@id=abc]";
            string dropLocator = @"//td[text()='drop to here']";


                selenium.MouseMove(dragLocator);
                Thread.Sleep(3000);
                selenium.MouseDownAt(dragLocator, "0,0");
                Thread.Sleep(3000);
                selenium.MouseMoveAt(dropLocator, "0,0");
                Thread.Sleep(3000);
                selenium.MouseUpAt(dropLocator, "0,0");
                Thread.Sleep(3000); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值