2016-08-04 24 views
0

コンテキスト:Windows 10; C#.NET; Selenium WebDriver(Chrome); ClearScriptSeleniumでは、ブラウザ画面で(x、y)に移動してもマウスポインタは移動しません。どうして?

私は、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(); 

...私は、オブジェクトアクションのインスタンスを作成し、「身体」タグを見つけ、ウェブサイトに移動し、クロームwebdriverをのインスタンスを作成し、これを使用して、身体の左上隅から(200,200)の(x、y)に移動する。

ここには、ブラウザがマウスだと思うところを教えてくれるコードがあります(図示せず)。上記の後、ブラウザは内部(x、y)が(200,200)であることを私に報告します。あまり大したことは、画面上のマウスポインタが一致するように移動していないことです。

ブラウザの内部を反映するためにマウスポインタに指示する方法はありますか?

答えて

1

moveToElementは、その座標を指すようにマウスポインタを変更しません。あなたの変数 'tl'はその座標に存在する要素を参照し、それをクリックするような操作を行うことができます。

いいえ、セレンには、マウスポインタをある場所から別の場所に移動させるためのビルド方法がありません(遷移を示すことによって)。

あなたは現在のアクションを実行している要素を強調したい場合は、

JavascriptExecutor js=(JavascriptExecutor)driver; 
js.executeScript("arguments[0].setAttribute('style,'border: solid 2px red'')", username); 
JavaScriptの実行者を使用してセレンでそれを行うことができます
関連する問題