0

コンテキスト: Windows 10; C# .NET; Selenium WebDriver (Chrome); ClearScript

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

... Chrome Webdriver のインスタンスを作成し、Web サイトに移動し、「body」タグを見つけ、Actions オブジェクトのインスタンスを作成し、それを使用して (200,200) の (x,y) に移動します本体の左上隅。

そこには、ブラウザがマウスの位置を認識している場所を示すコード (表示されていません) があります。上記の後、ブラウザは内部 (x,y) が (200,200) であることを報告します。これは素晴らしいことです。あまり良くないのは、画面上のマウス ポインターが一致するように移動していないことです。

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

4

1 に答える 1

1

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

いいえ、セレンには、マウスポインターをある場所から別の場所に移動させるための組み込みメソッドがありません(遷移を表示することによって)。

現在のアクションが実行されている要素を強調表示する場合は、javascript 実行プログラムを使用してセレンで行うことができます

JavascriptExecutor js=(JavascriptExecutor)driver;
js.executeScript("arguments[0].setAttribute('style,'border: solid 2px red'')", username);
于 2016-08-04T07:19:26.743 に答える