仅供以后可能会发现此内容的任何人参考。作为Fluent Automation GitHub 问题的一部分,我们讨论了如何处理这个问题,并提供了几种不同的解决方案。
理想情况下,任何用户交互都将使用实际的I.Click("#button")类型操作来处理,但在这样的边缘情况下,您有类似基于插件/flash/java/you-name-it 的 UI 元素,您需要:
- 添加一个扩展方法来支持这一点,就像 lstanczyk 所做的那样,或者
- 在不可见或屏幕外的元素上执行诸如单击事件之类的操作,使用触发 JavaScript API 的 onclick 以使用插件。
lstanczyk 自己的解决方案是添加一个扩展方法:
public static void RunScript(this FluentAutomation.Interfaces.INativeActionSyntaxProvider I, string scriptCode)
{
FluentAutomation.Element bodyTag = I.Find("body").Invoke() as FluentAutomation.Element;
bodyTag.AutomationElement.DomContainer.RunScript(scriptCode);
}
然后用I.RunScript(script);where scriptis JavaScript in a string 调用它。