2016-08-04 63 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);