关于Atata框架的另一个问题。我发现桌子上的装货很慢。大约有一张桌子。当我对检索到的行执行任何操作时,引擎似乎会再次加载该表。
慢的示例代码:
var row = _page.Inventory.Rows[x => x.Text == "some inventory"];
row.Should.Exist(); // that statement takes the same time as the above one and is slow...我为表使用的代码:
[FindByCss(".invGrid")]
public Table<GroupsRow, Page> Inventory { get; set; }我试图找到任何方便的方法来急切地加载数据,但没有找到任何方法。
我的问题是:
发布于 2018-02-16 07:45:54
目前,Table.Rows[predicate]在检查每一行时对大型表的工作速度很慢。它适用于小型桌子。也许我会更新它,使其在未来更快的工作,但它不是那么容易,所以它被推迟到现在。还有另一种快速方法可以执行单个XPath命令,您可以使用:
public TItem this[params string[] cellValues]
_page.Inventory.Rows“一些库存”
它将找到包含传递值的单元格的第一行。但是它可能是不准确的,因为它使用了“contains”谓词,而且如果表中有类似的字符串值。public TItem GetByXPathCondition(string itemName, string xPathCondition)
字符串itemName =“一些库存”;_page.Inventory.Rows.GetByXPathCondition( itemName,$.//space)(concat(‘',正常化-空格(@class),’'),‘item-name’)
该示例查找包含带有所需文本的<tr>的<span class="item-name">。
这一方法是准确的,但系统税是更复杂的。我还建议您在有单类CSS选择器时使用[FindByClass("invGrid")]属性而不是[FindByCss(".invGrid")]。FindByCssAttribute在Atata中的工作速度要慢一些,因为与大多数其他查找属性相比,它执行一个额外的WebDriver命令。
https://stackoverflow.com/questions/48812371
复制相似问题