我正在构建一个新的测试用例并遇到了一个新问题,我不知道如何解决.我需要点击一个既可见的元素:hidden和display:none或者至少需要一种方法来执行它调用的javascript函数.在传递过程中,我已经能够使用IJavascriptExecutor来更改元素可见性或显示但是这个选项对于这个测试用例并不好,因为我正在处理我在运行时使用`Driver.FindElements’找到的元素数组,所以我不能获取确切的选择器以使用我的旧方法来更改显示.
IJavaScriptExecutor js = (IJavaScriptExecutor)Driver;
var script = String.Format("document.querySelector('{0}').style.display='inline-block';", selector);
js.ExecuteScript(script);
附件是html的屏幕截图和相关元素的css属性.
我看到它的方式我有两个选项,我可以使这个测试不是动态的,并在单个硬编码元素上运行功能(哎呀!),或者我可以弄清楚如何动态地执行此操作.所以我的希望(可能是一个愚蠢的希望)是我可以以某种方式调用绑定到此按钮的onClick事件而不实际点击它.
解决方法:
您可以提取onclick属性并将其作为参数发送.你也不需要使用IJavaScriptExecutor,IWebDriver扩展了这个界面所以你只需调用ExecuteJavaScript方法
IWebElement buttonToClick;
string script = buttonToClick.GetAttribute("onclick");
driver.ExecuteJavaScript<object>(script);
您也可以尝试使用JavaScript单击它
driver.ExecuteJavaScript<object>("arguments[0].click();", buttonToClick);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。