Перейти к содержимому

Фотография

Рандомный элемент кода и Локатор css ( :nth-child) в случае разных доч

selenium css локатор random

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 A4nity500

A4nity500

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 18 октября 2017 - 12:17

Рандомный элемент кода и Локатор css ( :nth-child) в случае разных дочерних элементов.....

 

Как указать "Локатор" именно "css" к определённому <div class="zzz">, имея примерно такой код к примеру:

    <div class="osn">
        <div class="ttt">
        <div class="zzz">
        <div class="zzz">
        <div class="zzz">
        <div class="ttt">
        <div class="zzz">
        <div class="zzz"> 

// "т.е. выходит что кол-во <div class="zzz"> = 5, а <div class="ttt"> = 2."

К примеру подсчитал кол-во <div class="zzz">:

int countZZZ = driver.findElements(By.cssSelector(".osn    .zzz")).size(); // В данном случае "countZZZ" = 5.

Хочу выбрать рандомно один из <div class="zzz"> :
   

int randomZZZ = (int)(Math.random() * countZZZ + 1); // Рандомный class="zzz" элемент - от 1 до countZZZ
driver.findElement(By.cssSelector(".osn    .zzz:nth-child(" + countZZZ + ")")).click();

В этом случае если рандомное число будет равно 2, 3, 4, 6, 7 - элемент div class="zzz" будет найден
А если рандомное число будет равно 1 или 5 - то не будет найден, так как дочерними элементами будут уже являться div class="ttt"

Так вот собственно вопрос, как обойти данную проблему и подсчитать кол-во <div class="zzz"> и
после чего рандомно уже среди полученного кол-ва <div class="zzz">, выбрать 1-ин из них??


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 18 октября 2017 - 13:44

В ХPath это было бы просто:

//div[@class="osn"]/div[@class="zzz"][i]

Насчет CSS, пока думаю.

 

Апдейт, в интернете нашел мнение:

 

К сожалению, это невозможно средствами CSS. nth-of-type, nth-child и т.д. не фильтруют по классу а работают ориентируясь только на порядковый номер элемента относительно родителя вне зависимости от классов.

Я, пожалуй, с ним согласен.
 


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных