在Selenium中,在浏览器屏幕上移动到(x,y)不会;t移动鼠标指针.为什么

本文关键字:移动 不会 为什么 鼠标指针 Selenium 浏览器 屏幕 | 更新日期: 2023-09-27 18:00:58

上下文:Windows 10;C#.NET;Selenium WebDriver(Chrome(;ClearScript

我已经通过ClearScript向javascript公开了许多Selenium函数。在脚本中。。。

var url = "http://www.google.com.au";
var driver = new CSChromeDriver();
driver.Navigate().GoToUrl(url);
...
var topLeft = driver.FindElement(CSBy.TagName("body"));
var builder = new CSActions(driver);
var tl = builder.MoveToElement(topLeft, 200, 200);
tl.Build().Perform();

我创建了一个Chrome网络驱动程序的实例,导航到一个网站,找到"body"标记,创建Actions对象的实例,然后使用它从body的左上角移动到(200200(的(x,y(。

我在那里有代码(未显示(,它告诉我浏览器认为鼠标在哪里。在上面之后,浏览器向我报告它是内部的(x,y(是(200200(,这很好。不太好的是屏幕上的鼠标指针没有移动到匹配的位置。

有什么方法可以让鼠标指针反映浏览器的内部现实吗?

在Selenium中,在浏览器屏幕上移动到(x,y)不会;t移动鼠标指针.为什么

moveToElement不会将鼠标指针更改为指向该坐标。我会让你的变量"tl"指代该坐标中存在的元素,你可以执行类似点击它的操作。

不,selenium没有任何内置的方法来使鼠标指针从一个位置移动到另一个位置(我指的是显示转换(。

如果您想突出显示正在执行当前操作的元素,可以在selenium中使用javascript executor 来实现这一点

JavascriptExecutor js=(JavascriptExecutor)driver;
js.executeScript("arguments[0].setAttribute('style,'border: solid 2px red'')", username);