Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Selenium webdriver将鼠标从一点移动到另一点_C#_Selenium_Selenium Webdriver_Selenium Chromedriver - Fatal编程技术网

C# Selenium webdriver将鼠标从一点移动到另一点

C# Selenium webdriver将鼠标从一点移动到另一点,c#,selenium,selenium-webdriver,selenium-chromedriver,C#,Selenium,Selenium Webdriver,Selenium Chromedriver,我想使用selenium和chrome驱动程序将鼠标从网页上的A点(随机)移动到B点(元素) 模拟鼠标移动而不是从一点跳到另一点 我有起始位置和目标元素的坐标 不幸的是,似乎没有办法将光标移动到特定点,我的选项似乎是MoveToElement和moveByOffset。这两种方法都使用偏移,因此您只能从尝试单击的图元移动一定距离 移动光标 Actions builder = new Actions(driver); builder.MoveToElement(element, offsetX,

我想使用selenium和chrome驱动程序将鼠标从网页上的A点(随机)移动到B点(元素)

模拟鼠标移动而不是从一点跳到另一点

我有起始位置和目标元素的坐标

不幸的是,似乎没有办法将光标移动到特定点,我的选项似乎是
MoveToElement
moveByOffset
。这两种方法都使用偏移,因此您只能从尝试单击的图元移动一定距离

移动光标

Actions builder = new Actions(driver);
builder.MoveToElement(element, offsetX, offsetY).Perform();
我正在使用下面的代码获取起始位置/坐标当前坐标

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("mousePosX =  0; mousePosY = 0; onmousemove = function(e){ mousePosX = e.clientX; mousePosY = e.clientY; console.log('Y:' + mousePosY + ' X:' + mousePosX); }; ");

IWebElement currentElement = driver.SwitchTo().ActiveElement();
builder.MoveToElement(currentElement, randomStartX, randomStartY).Perform();

int mousePosX = convertJSMousePos(driver.ExecuteScript("return mousePosX;"));
int mousePosY = convertJSMousePos(driver.ExecuteScript("return mousePosY;"));
获取目标坐标

IWebElement link = driver.FindElement(By.LinkText("more info"));
System.Drawing.Point location = link.Location;

int targetXPostion = location.X;
int targetYPostion = location.Y;
我知道解决方案将是一个逐渐减小偏移量的循环,直到到达X/Y目标或目标元素处于焦点


我觉得我已经掌握了我需要的所有坐标和方法,但我尝试将这些坐标和方法放在一起的尝试到目前为止都以惨败告终。

我觉得这可能有助于一些人了解您试图在页面上模拟真实鼠标拖动的原因。这是在测试HTML5游戏还是交互式控件?作为一种解决方法,您可以计算起始位置和目标位置之间的某些点,这样您就可以编写自己的方法,逐步重新定位鼠标。我觉得这可能有助于了解您试图在页面上模拟真实鼠标拖动的原因。这是在测试HTML5游戏还是交互式控件?作为一种解决方法,您可以计算起始位置和目标位置之间的某些点,这样您就可以编写自己的方法,逐步重新定位鼠标。