2016-05-25 2 views
0

Я пытаюсь найти элемент, который является DIV внутри DIV ... Вот пример кода:с # селеном нахождение элемента с помощью XPath

<div class="col-md-4"> 
    <div style="display: none;" id="multiplier-win" class="label label-success multiplier">2X</div> 
    <div style="display: block;" id="multiplier-lose" class="label label-danger multiplier">0X</div> 
    <div style="display: none;" id="multiplier-tie" class="label label-warning multiplier">1X</div> 
</div> 

Я хочу найти class="label label-success multiplier" и проверить, ее style="display:none".

Как написать это в C#?

Пожалуйста, помогите мне спасибо!

ответ

1

В вашем случае элементы имеют уникальный идентификатор. Поэтому вместо поиска их по имени класса (что может привести к нескольким/неточным результатам), вы должны использовать By.Id(...). Легче писать вручную, чем xpath.

Скажем, ваш экземпляр IWebDriver называется драйвером. Код выглядит так:

IWebElement element = driver.FindElement(By.Id("multiplier-win")); 
String style = element.GetAttribute("style"); 
... 

Я не хочу вас обидеть, но вы, вероятно, должны использовать google перед тем, как опубликовать здесь. Это очень простой код, который вы найдете в нескольких учебниках о селене.

Edit: В случае, если вы ищете для нескольких элементов класса:

ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.ClassName("...")); 

foreach (IWebElement el in elements) 
{ 
     ... 
} 
0

найти элемент:

IWebElement element = driver.FindElement(By.XPath("//div[@class='label label-success multiplier']")); 

Чтобы проверить, если отображается элемент, это возвращает логическое значение (true, если отображается, false, если не отображается). Если вы идете с кодом списка элементов philn, вы можете выбросить эту строку в свой оператор foreach, и он скажет вам, какие из них отображаются.

el.Displayed; 
Смежные вопросы