2

我在我的项目中使用 Fluent Automation 来创建更多人类可读的测试。此处提供信息http://fluent.stirno.com/和 GitHub:https ://github.com/stirno/FluentAutomation

我需要能够执行一些没有通过流畅的自动化实现的事情,并且希望能够掌握浏览器或 WatiN 元素。我实际上是在尝试运行这样的 LINQ 查询:

var indicators = from i in this.CurrentBrowser.Links
where i.Url.Contains("LeadsMine.aspx?flag")
select i;

有任何想法吗?

先感谢您!

4

1 回答 1

2

仅供以后可能会发现此内容的任何人参考。作为Fluent Automation GitHub 问题的一部分,我们讨论了如何处理这个问题,并提供了几种不同的解决方案。

理想情况下,任何用户交互都将使用实际的I.Click("#button")类型操作来处理,但在这样的边缘情况下,您有类似基于插件/flash/java/you-name-it 的 UI 元素,您需要:

  1. 添加一个扩展方法来支持这一点,就像 lstanczyk 所做的那样,或者
  2. 在不可见或屏幕外的元素上执行诸如单击事件之类的操作,使用触发 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 调用它。

于 2012-10-31T05:09:23.297 回答