2015-12-17 6 views
0

теста Селена (выбор элемента, не имеющий атрибута)

<! DOCTYPE html> 
 
<html> 
 
<head>Sample</head> 
 
<body> 
 
<div class="panelBody"> 
 
    <div class=panel-section></div> 
 
    <div class=panel-section style="display:block"></div> 
 
</div> 
 
</body> 
 
</html>

В данной Snippet есть два элемента с таким же классом. Я должен выбрать элемент, который не имеющий стиль attribute.If я пытался искать с классом панели сечения его дает неоднозначность error.So как выбрать Div элемент, который не имеющий стиль attribute.ie

    <div class=panel-section></div> 
+0

Это можно сделать, но что вы хотите сделать с таким элементом? Вы хотите сохранить его в любом месте, нажать на него? Я не уверен, что он поддержит операцию выбора. – MKay

+0

@ mk08 да, я хочу нажать на него. У вас есть решение? –

+0

Получите все элементы с классом «панель-секция», а затем зациклируйте их все, чтобы найти элемент, который соответствует вашему стилю. Но если этот стиль слишком распространен/по умолчанию, это может не сработать. –

ответ

1

Поскольку существует более одного элемента с таким же именем класса, вам необходимо использовать метод Selenium driver.findElements(). Я попытался получить этот элемент, но мне интересно, можно ли его использовать. Только элемент действительно может быть полезен здесь: текст Sample. Проверьте код ниже. Дайте мне знать, если это похоже на то, что вы ищете.

List<WebElement> linksize=null; 
String links[]=null; 
linksize = driver.findElements(By.cssSelector("div[class=panel-section]")); 
    int linksCount = linksize.size(); 
    links= new String[linksCount]; 
    for(int i=0;i<linksCount;i++) 
    { 

    links[i] = linksize.get(i).getAttribute("style"); 
    if(links[i].isEmpty()) 
    { 
     System.out.println("I am div without style"); 
     linksize.get(i).click(); 

    } 

    } 
+0

yes.that именно то, что я хочу. –

1

Try это:

//div[@class='panelBody']/div[not(@style)] 

Пояснение: Сначала найдите DIV с классом panelBody, то найти ребенка DIV элементы в panelBody DIV, который не содержит @style атрибут.

Используйте метод findElements, если имеется более одного элемента div без атрибута @style, иначе метода findElement() будет достаточно.

+0

Это панель или панель? –

+0

@ AvinashJadhav это panelBody, он не использует панель-раздел во втором div, потому что в вашем примере это не имеет значения, если вы запустите несколько «родительских» div с классом panelBody, вам, вероятно, понадобится сделать это: // div [@ class = 'panelBody']/div [@ class = 'panel-section', а не (@style)] – drkthng

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