2016-08-04 95 views
0

上下文:Windows 10; C#.NET; Selenium WebDriver(Chrome); ClearScript在Selenium中,移动到浏览器屏幕上的(x,y)不会移动鼠标指针。为什么?

我已经通过ClearScript将一些Selenium函数暴露给javascript。在脚本...

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(); 

...我创建了一个镀铬的webdriver的实例,浏览到一个网站,发现“尸体”的标签,创建操作对象的实例,并使用,从身体的左上角移至(200,200)的(x,y)。

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

有什么办法可以告诉鼠标指针来反映浏览器的内在现实吗?

回答

1

moveToElement不会将鼠标指针改为指向该坐标。我会让你的变量'tl'指向那个坐标中的元素,你可以执行像点击它的操作。

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

如果你想以突出显示正在执行当前操作的元素,你可以做,在硒使用JavaScript执行者

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