2015-08-07 2 views
1

Является ли этот синтаксис в порядке, если нет, то каким путем можно получить элемент, содержащий тот или иной элемент?selenium поиск en элемент по множественному выбору selenium C#

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

Или есть вариант, как, например:

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

ответ

0

соединения нескольких условий прекрасно подходит и действительным. Вы можете использовать . вместо text(), чтобы сохранить воды и планеты некоторое пространство:

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

В качестве альтернативы, вы можете попробовать использовать «текст ссылки» локатора несколько раз за обработку исключений:

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# довольно ржавые (простить ошибки).

Смежные вопросы