2016-07-04 2 views
0

Возможно ли узнать, содержит ли родитель дочерний элемент с определенным именем класса. Пример кодаПроверить наличие дочернего тега внутри родительского тега

<div id="parent_tag"> 
    <div id="div1"> 
     <span>Title 1</span> 
    </div> 
    <div id="div2"> 
     <b>Title 2</b> 
    </div> 
    <div id="div3"> 
     <span>Title 3</span> 
    </div> 
</div> 

Я пытаюсь получить доступ к «поверочного тег» только с Title 3. Я знаю, что могу это сделать, указав идентификатор. но что, если я захочу в целом (т. е. для всех элементов). Поэтому мой первый подход должен быть «Я буду искать тег span внутри div». но я не знаю, как это сделать? Пожалуйста помоги.

+1

Отметьте мой ответ, но на самом деле я не уверен, что правильно вас понимаю, как вы сказали «ребенок с определенным именем класса», но в условии «HTML» нет элементов с указанными классами ... – Andersson

ответ

0

Использование JQuery селекторы выбрать интервал в div3:

$("#div3 span") 

Или конкретно первый пролет элемента внутри div3:

$("#div3 span:first") 
0

Вот идея получите то, что вам нужно

// Get Parent Element 
    WebElement parent = driver.findElement(By 
      .xpath("//div[@id='parent_tag']")); 

    // Get All children elements of the parent element 
    List<WebElement> children = parent.findElements(By.xpath("//*")); 

    // Init some based param for next usage 
    boolean checkClass = false; 
    String expectedClass = "Expected_Class"; 

    // Fetch each child element and check whether its text contains expected string. 
    for (WebElement child : children) {  
     if (child.getAttribute("class").contains(expectedClass)) { 
      checkClass = true; 
     } 
    } 

    if (checkClass) { 
     System.out 
       .println("We have at least one child has expected class: " 
         + expectedClass); 
    } 
    else System.out.println("We don't have any child has expected class: " 
         + expectedClass); 

, если вы хотите, чтобы проверить текст, мы могли бы сделать

if (child.getText().contains(expectedText)) {   
      checkResult = true; 
     } 
    } 

Надеются, что это помогает.

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