我越来越担心以下问题。根据测试数据,存在不同的按钮或链接,必须单击该按钮或链接以继续下一个测试步骤。当按钮B出现时,我等待按钮A可点击时,由于超时而导致测试失败,反之亦然。
可以用什么策略来解决这个问题?
我发现了以下问题:Selenium Wait for anyone of Element to visible
这里的问题用
解决了Expectedconditions.or
这在Java中可用,但在C#中没有。
我尝试了这种结构,但在C#中不允许这样做:
wait.Until(d =>
ExpectedConditions.ElementToBeClickable(element1) || ExpectedConditions.ElementToBeClickable(element2));
它给出以下错误消息:"运算符" ||"不能应用于类型' Func'的操作数。和' Func'。
答案 0 :(得分:1)
您可以毫无问题地在C#ExpectedConditions.ElementIsVisible(elementLocator)
中使用。它是gitHub you can see it here
你也可以在selenium中使用它但不推荐使用
答案 1 :(得分:0)
Java表达式的C#替代方法:
Expectedconditions.or
可以是:
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath($"{locatorelement1} | {locatorelement2}")));