Дак, если мне память не изменяет, то кликнуть чекбокс по спану ваще в принципе нельзя. Чекнуть можно только по input (type=“checkbox”) или клик по <label>
. Как правило лейбл связывают с инпутом по айдишнику. К тому же, если сделать вот такое изменение:
<label class="checkbox__label" for="glf-7893318-152898">Electrolux</label>
// изменить на
<label class="checkbox__label" for="абра_кадабра">Electrolux</label>
то и клик по лейблу не даст результата
у вас там ничего не перекрывает, просто по такому элементу ваще нет возможности кликнуть, для выбора чекбокса - //div[@class='n-filter-panel-aside__content']/div[4]//span[@class='checkbox__box']
вам надо кликать либо по инпуту input (type=“checkbox”) или по лейблу, если он связан с леблом по айдишнику…
Это все касается сугубо верстки, и не как не касается веб-драйвера и вашего кода…
Яркий тому пример
В консольке браузера сделайте клик сначала по:
// это ваш спан - <span class="checkbox__box">
$(".checkbox__box").click();
// инпут с типом "checkbox" <input class="checkbox__control" type="checkbox" id="glf-7893318-152898">
$(".checkbox__control").click();
// это ваше лейбл, который связан c айдишником инпута - <label class="checkbox__label" for="glf-7893318-152898">Electrolux</label>
$(".checkbox__label").click();
только когда будете эксперементировать, ждите долго, пока не проставятся галочки, а то там их много с такими класами и айдишниками
Кстати, вроде спан тоже можно связать по айдишнику с инпутом, но это вроде плохая практика, связывают, как правило лейблы, а в спан заворачивают. Поэтому вы просто кликали по элементу, которые не относиться к инпуту типа checkbox…
С тем же успехом можно кликать по дивчику <div>
, в который завернут спан и инпут нужный…
Все что выше написал - это по поводу:
List<WebElement> checkboxes = driver.findElements(By.xpath("//div[@class='n-filter-panel-aside__content']/div[4]//span[@class='checkbox__box']"));
checkboxes.get(4).click();