-1

以下のコード スニペットは、Visual Studio の通常の UnitTest プロジェクト テンプレートで C# コードを使用して記述されています。2 つの NuGet パッケージ (Selenium WebDriver サポート クラスと Selenium WebDriver) を追加して、Selenium Web ドライバー サポート DLL を追加しました。次に、以下のコードを Test メソッドに入力すると、テストがデバッグ モードで実行されます。

    static IWebDriver driver;

    driver = new ChromeDriver(@"C:\Selenium_Drivers"); // location of chromedriver.exe

    driver.Url = "http://juliemr.github.io/protractor-demo/";

    string javascript = "document.addEventListener('click', function(event){alert(event.relatedTarget);});";

    ((IJavaScriptExecutor)driver).ExecuteScript(javascript);

コードはデバッグ モードで実行され、上記の 4 行のコードの後、ロードされた Web ページをクリックしようとすると、以下に示すようにアラート ウィンドウに null 値が表示されます。

ここに画像の説明を入力

コード内のアラート コンテンツが変更された場合、event.clientXまたはここで説明されているプロパティのリストからそのようなプロパティを表示する - http://www.javascripture.com/MouseEvent

それはうまくいっています。

relatedTarget要素オブジェクトが存在すると予想される場所でのみが null を返す理由を誰かが提案できますか?

4

1 に答える 1

0

5ケ、

まず、javascriptureのドキュメントによると、 relatedTarget はクリックとは関係ありませんが、mouseenter、mouseleave、dragenter などに関連しています。

次に、イベントがドキュメントに直接追加されているようですが、機能していません。個々の要素に対して同じことが行われると、適切な要素が返されます。

これは私が試したものです -

string javascript = "document.getElementById('gobutton').addEventListener('mouseleave', function(event){alert(event.relatedTarget);});";

            ((IJavaScriptExecutor)driver).ExecuteScript(javascript);

そしてそれは働いています。

于 2015-12-16T05:12:32.623 に答える