javascript - 在 Selenium 中,移动到浏览器屏幕上的 (x,y) 不会移动鼠标指针。为什么?

标签 javascript c# selenium clearscript

上下文:Windows 10; C# .NET; Selenium 网络驱动程序(Chrome);清除脚本

我通过 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 Webdriver 实例,导航到一个网站,找到“body”标签,创建 Actions 对象的实例,然后使用该实例移动到 (x,y) ( 200,200) 从主体的左上角。

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

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

最佳答案

moveToElement 不会将鼠标指针更改为指向该坐标。我将使您的变量“tl”引用该坐标中存在的元素,您可以执行单击它之类的操作。

不,selenium 没有任何内置方法可以使鼠标指针从一个位置移动到另一个位置(通过显示我的意思是过渡)。

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

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

关于javascript - 在 Selenium 中,移动到浏览器屏幕上的 (x,y) 不会移动鼠标指针。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38759410/

相关文章:

javascript - 提交前创建文本区域预览

c# - Xamarin Forms - 如何获取设备的当前国家/地区

c# - 使用 Selenium 将文本发送到不适用于 IE9 的 tinymce 控件

javascript - 如何使用 ember 操作将查询参数设置为 null?

javascript - A型框架VR : Difference between cursor and raycaster

c# - 当另一个表单关闭时运行一些代码

java - 如何访问 Selenium 中弹出的表单类型登录/注册

javascript - 在端到端测试中使用跨平台键盘快捷键

javascript - 如果任一 div 可见,jQuery 将隐藏

c# - 动态设置网格列/行宽度/高度