0

除了leaft.exists() 和以下内容之外,还有其他等待。我回来了,要等很久才能确定某些东西是否可点击

Leanft 等待

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

4

1 回答 1

0

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

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

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

然后你可以调用WaitUntil如下:browser.WaitUntil(funcToRun);

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

由于您可以访问funcToRun方法中的测试对象,因此您可以等到任何您想要的逻辑。这是另一个使用箭头函数的示例,它不等待按钮到.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));
于 2018-03-26T05:00:56.650 回答