精益处理等待

时间:2018-03-25 23:27:29

标签: leanft

除了leanft.exists()以及下面的内容之外还有其他等待吗?我回来等待确定某些东西是否可点击

Leanft waits

我的应用程序是使用ReactJS的单页Javascript应用程序。挑战在于有时候硒点击不起作用。它执行该行,但我没有导航到下一个路径或页面。此外,在您执行期望在新页面上的下一行之前,它不会抛出异常。我必须再次执行点击。本质上,我需要一种方法将条件传递给click方法,以验证如果我点击某个元素,我希望看到一些其他元素。如果未发生单击,则返回false并再次单击。这有意义吗?

1 个答案:

答案 0 :(得分:0)

我看到你链接到C#sdk,所以我将用C#回答。

WaitUntil执行提供的布尔方法,直到它返回true。因此,如果您实现自己的方法:

 private bool funcToRun(IBrowser arg)
 {
     // imeplement whatever logic you want here
     return true;
 }

然后,您可以按如下方式致电WaitUntilbrowser.WaitUntil(funcToRun);

当然要确保您的funcToRun将正确的测试对象(您实际调用的对象.WaitUntil)作为参数。

由于您可以在funcToRun方法中访问测试对象,因此可以等到所需的任何逻辑。 这是another example使用箭头函数,不等待.Exist()的按钮,而是Buttons数组有16个元素。:

// Create a description for the Toolbar.
var toolBar = window.Describe<IToolBar>(new ToolBarDescription
{
    NativeClass = "SwingSet2$ToggleButtonToolBar"
});

// There are 16 buttons in the toolbar. Use the WaitUntil method to wait until all 16 buttons are loaded.
// This ensures that any button we press was loaded. If not loaded, the test fails.
toolBar.WaitUntil(tb => (tb.Buttons.Count == 16));