首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Atata -处理表行比较慢。

Atata -处理表行比较慢。
EN

Stack Overflow用户
提问于 2018-02-15 16:50:30
回答 1查看 228关注 0票数 0

关于Atata框架的另一个问题。我发现桌子上的装货很慢。大约有一张桌子。当我对检索到的行执行任何操作时,引擎似乎会再次加载该表。

慢的示例代码:

代码语言:javascript
复制
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...

我为表使用的代码:

代码语言:javascript
复制
[FindByCss(".invGrid")]
public Table<GroupsRow, Page> Inventory { get; set; }

我试图找到任何方便的方法来急切地加载数据,但没有找到任何方法。

我的问题是:

  1. 有什么方法可以急切地装载这一行吗?
  2. 有什么办法让桌子装得更快吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-16 07:45:54

目前,Table.Rows[predicate]在检查每一行时对大型表的工作速度很慢。它适用于小型桌子。也许我会更新它,使其在未来更快的工作,但它不是那么容易,所以它被推迟到现在。还有另一种快速方法可以执行单个XPath命令,您可以使用:

  1. 使用索引器:public TItem this[params string[] cellValues] _page.Inventory.Rows“一些库存” 它将找到包含传递值的单元格的第一行。但是它可能是不准确的,因为它使用了“contains”谓词,而且如果表中有类似的字符串值。
  2. 使用方法:public TItem GetByXPathCondition(string itemName, string xPathCondition) 字符串itemName =“一些库存”;_page.Inventory.Rows.GetByXPathCondition( itemName,$.//space)(concat(‘',正常化-空格(@class),’'),‘item-name’) 该示例查找包含带有所需文本的<tr><span class="item-name">。 这一方法是准确的,但系统税是更复杂的。
  3. 通过提取到扩展方法,可以使上面的示例更容易使用: 公共静态类TableRowListExtensions {公共静态SomePage.GroupsRow GetByName(这个TableRowList rowList,字符串名称){返回rowList.GetByXPathCondition(名称,$“.//space)(concat( ',规范化-空格(@ class ),‘’,‘项目-名称')”;} 然后在测试中使用: _page.Inventory.Rows.GetByName(“一些库存”) 它应该是快速和准确的。

我还建议您在有单类CSS选择器时使用[FindByClass("invGrid")]属性而不是[FindByCss(".invGrid")]FindByCssAttribute在Atata中的工作速度要慢一些,因为与大多数其他查找属性相比,它执行一个额外的WebDriver命令。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48812371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档