Не нажимается на кнопку со свойством href="#"

python
Теги: #<Tag:0x00007f7b68eb91d8>

(Николай) #1

В общем, есть сайт, на нем несколько одинаковых кнопок(типа обновить каждый элемент), собрал я значит эти кнопки в список и решил прокликать через цикл, вот только что-то они не кликаются в рантайме, а через деббагер всё норм кликается.
P.S. время ожидания увеличивал везде, где только можно и максимально возможно. Выскакивает WebDriverException, сама кнопка в html “a href=”#" data-bind=“text: upBtnText(), click: $parent.upAdvert” >Обновить</a". Сообщение об ошибке unknown error: Element a href="#" data-bind=“text: upBtnText(), click: $parent.upAdvert”>… is not clickable at point
P.S.S. submit() пробовал, только по кругу переходит на эту же страницу


(Vladislav Abramov) #2

Так там дальше должно быть написано, почему нот кликабл, другой элемент может закрывает кнопку или ещё что-то

и зачем нажимать на hrev=#? ищите кнопку по тексту внутри


(Vladislav Abramov) #3

а, понял, текст одинаковый везде

ну напишите xpath, который будет от родительского элемента спускаться к кнопке и жать ее


(Николай) #4

Не всё так просто. Кнопки могут в количестве меняться динамически по определенным правилам при загрузке, xpath как раз нужен универсальный, чтобы список их возвращал. Когда я отладчиком в IDE прохожу вручную по кнопкам, то всё норм, запускаю run и падает.


(Vladislav Abramov) #5

ну пусть так, полное сообщение ошибки какое?


(Николай) #6
Element <a href="#" data-bind="text: upBtnText(), click: $parent.upAdvert">...</a> is not clickable at point (1472, 940). Other element would receive the click: <div class="cookiesBar" id="cookiesBar">...</div>

(Vladislav Abramov) #7

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


(Николай) #8

Я когда в дебаггере кликаю вручную каждый шаг всё отлично проходит.


(Vladislav Abramov) #9

вы хотите автоматизировать тесты или в дебаггере кликать ручками?

сейчас у вас селениум падает на том, что не может нажать кнопку из-за элемента поверх
вам нужно разобраться, нормально ли он там появляется или нет

если да, то нужно дождаться пока он скроется
waitElementHide, ну и время ожидания указать


(Николай) #10

тест на python, а это скорее всего метод java? Всё решилось тем, что добавил 10 секунд ожидания в месте, где, на мой взгляд, это не имело значения, и оказалось, что имело и тест заработал. Хотя элемент ничем не перекрывался и был абсолютно виден как внешне, так и по коду. Спасибо.


(Vladislav Abramov) #11

эм, если такого метода нет, можно его написать

ставить паузы, тем более в 10 секунд, это дурной тон, уж извините


(Николай) #12

Знаю, мне важнее было проверить, что всё по коду действительно работает, теперь рефакторингом буду заниматься.


(Alexandr D.) #13

Нужно просто ждать, пока элемент будет кликабелен. Может там лоадер появляется.