在 Selenium 中,移动到浏览器屏幕上的 (x,y) 不会移动鼠标指针。为什么?
In Selenium, moving to an (x,y) on browser screen doesn't move mouse pointer. Why?
上下文: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 webdriver 的实例,导航到一个网站,找到 "body" 标签,创建了一个 Actions object 的实例,然后使用即,从 body 的 top-left 角移动到 (200,200) 的 (x,y)。
我有代码(未显示)告诉我浏览器认为鼠标在哪里。在上面之后,浏览器向我报告它的内部 (x,y) 是 (200,200),这很好。不太好的是 on-screen mouse-pointer 没有移动以匹配。
有什么办法可以让mouse-pointer反映浏览器的内在真实性?
moveToElement 不会将鼠标指针更改为指向该坐标。我将使您的变量 'tl' 引用该坐标中存在的元素,您可以执行单击它等操作。
不,selenium 没有任何内置方法可以使鼠标指针从一个位置移动到另一个位置(我的意思是通过显示过渡)。
如果你想突出显示当前正在执行操作的元素,你可以在 selenium 中使用 javascript 执行器
JavascriptExecutor js=(JavascriptExecutor)driver;
js.executeScript("arguments[0].setAttribute('style,'border: solid 2px red'')", username);
上下文: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 webdriver 的实例,导航到一个网站,找到 "body" 标签,创建了一个 Actions object 的实例,然后使用即,从 body 的 top-left 角移动到 (200,200) 的 (x,y)。
我有代码(未显示)告诉我浏览器认为鼠标在哪里。在上面之后,浏览器向我报告它的内部 (x,y) 是 (200,200),这很好。不太好的是 on-screen mouse-pointer 没有移动以匹配。
有什么办法可以让mouse-pointer反映浏览器的内在真实性?
moveToElement 不会将鼠标指针更改为指向该坐标。我将使您的变量 'tl' 引用该坐标中存在的元素,您可以执行单击它等操作。
不,selenium 没有任何内置方法可以使鼠标指针从一个位置移动到另一个位置(我的意思是通过显示过渡)。
如果你想突出显示当前正在执行操作的元素,你可以在 selenium 中使用 javascript 执行器
JavascriptExecutor js=(JavascriptExecutor)driver;
js.executeScript("arguments[0].setAttribute('style,'border: solid 2px red'')", username);