我有一个 Angular 网格(ag-grid),它将基于滚动/视图在 DOM 中创建 div 以显示数据。我正在编写一个 Selenium WebDriver 测试,该测试将从网格中读取数据并将其与从 API 返回的数据进行比较。
由于一些 div 尚未创建(隐藏在 Angular 虚拟化之后),WebDriver 无法有效地捕获数据。
有没有办法强制网格显示所有数据?
我有一个 Angular 网格(ag-grid),它将基于滚动/视图在 DOM 中创建 div 以显示数据。我正在编写一个 Selenium WebDriver 测试,该测试将从网格中读取数据并将其与从 API 返回的数据进行比较。
由于一些 div 尚未创建(隐藏在 Angular 虚拟化之后),WebDriver 无法有效地捕获数据。
有没有办法强制网格显示所有数据?
有一个设置,gridOptions.rowBuffer,它告诉网格在视口上方/下方渲染多少额外的行。将此设置为大于您拥有的行数的数字,然后将呈现所有行。或者如果不确定,请将其设置为 9999999。
ps你提到'Angular Grid'和'Angular Virtualization'。正确地说,它被称为“不可知论网格”——ag 代表不可知论——而且虚拟化不是 Angular,网格网格有自己的行虚拟化实现。
尝试设置domLayout
为domLayout = 'autoHeight'
尝试显式单击滚动条或平移滚动区域,以使所需的 div 进入视图以强制 Angular 实例化 div。您可以尝试在实例化 div 集边缘上的已知实例化对象上滚动到视图,我想这会踢 Angular 实例化视图之外的对象,以期待继续滚动。如果需要,清洗、冲洗、重复。
这是一个关于在 Selenium 中滚动到元素的可能有用的页面:使用 Selenium 将元素滚动到视图中