下面的代码片段是在 Visual Studio 的普通 UnitTest 项目模板中使用 C# 代码编写的。我通过添加 2 个 NuGet 包添加了 Selenium Web 驱动程序支持 dll:Selenium WebDriver Support 类和 Selenium WebDriver。然后在 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 行代码之后,如果我们尝试点击加载的网页,警报窗口会出现如下所示的 null 值:
当代码中的警报内容更改为显示event.clientX
或此处描述的属性列表中的任何此类属性时 - http://www.javascripture.com/MouseEvent
它运行良好。
谁能建议为什么只有relatedTarget
在我们期望元素对象存在的地方返回 null ?