精益处理等待

Leanft handling waits

除了leanft.exists() 和下面的这些之外,还有其他的等待吗?我回来了,要等很久才能确定是否可以点击

Leanft waits

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

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

WaitUntil 执行提供的布尔方法,直到 returns 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));