下面的代碼片段是使用C#代碼在Visual Studio的正常UnitTest項目模板中編寫的。我通過添加2個NuGet包添加了Selenium Web驅動程序支持dll:Selenium WebDriver支持類和Selenium WebDriver。然後輸入下面的代碼 - 在Test方法中,測試在調試模式下運行。addEventListener處理函數不返回鼠標單擊事件的事件對象的所有屬性
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);
的代碼excuted在調試模式和上述4行代碼後,如果我們試圖點擊加載網頁上的警告窗口,空值出現如下圖所示:
當代碼報警內容更改爲顯示從這裏描述的屬性列表event.clientX
或任何這種性質 - http://www.javascripture.com/MouseEvent
它運作良好。
任何人都可以提出爲什麼只有relatedTarget
返回null我們期望元素對象存在?
MouseEvent對象還暴露了srcElement(Element對象),它將給出事件源的源元素。對於諸如點擊等直接事件,relatedTarget將爲空。因此可以依賴srcElement。 – 5Qe