硒搜索en元素的多项选择硒c#

本文关键字:选择 搜索 en 元素 | 更新日期: 2023-09-27 18:06:54

这样的语法对吗?如果不行,还有什么方法可以得到一个包含这个或这个或那个的元素?

//*[contains(text(), 'Selling') or contains(text(), 'Buy') or contains(text(), 'Sales')]

或者是否有其他选项,例如:

Find.Elements(By.LinkText("this" or "this" or "that"));

硒搜索en元素的多项选择硒c#

连接多个contains()条件是完全可以且有效的。你可以用.代替text()来节省水和行星的一些空间:

//*[contains(., 'Selling') or contains(., 'Buy') or contains(., 'Sales')]

或者,您可以尝试多次使用"link text"定位器来处理异常:

string[] texts = {"Selling", "Buy", "Sales"};
for(int i = 0; i < texts.length; i++)
{
    try
    {
        return driver.FindElement(by.LinkText(texts[i]));
    }
    catch (NoSuchElementException)
    {
        continue;
    }
}
throw new NoSuchElementException();

我的c#技能相当生疏(原谅错误)。