单击元素时使用的策略可能有所不同

时间:2018-06-04 13:36:40

标签: c# selenium-webdriver

我越来越担心以下问题。根据测试数据,存在不同的按钮或链接,必须单击该按钮或链接以继续下一个测试步骤。当按钮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'。

2 个答案:

答案 0 :(得分:1)

您可以毫无问题地在C#ExpectedConditions.ElementIsVisible(elementLocator)中使用。它是gitHub you can see it here

中的DotNetSeleniumExtras存储库

你也可以在selenium中使用它但不推荐使用

答案 1 :(得分:0)

Java表达式的C#替代方法:

Expectedconditions.or

可以是:

wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath($"{locatorelement1} | {locatorelement2}")));