Ответы пользователя по тегу JavaScript
  • Как сэмулировать клик по кнопке (Selenium, JS, Python, Chrome)?

    @vlatek Автор вопроса
    Digital Nomad
    Оказалось что фронт собирали на GWT, да так криво получилось, что событие висит только на mousedown на родителе пятого поколения кнопки button O_O Этот родитель является таблицей в которой вложено еще несколько десятков "пустых" элементов.
    Проблему решил таким JS костылем:

    var buttonNodes = document.getElementsByTagName('button') //ищем все элементы по тегу
    var links = Array.from(buttonNodes).filter(e => (/Проверено/i).test( e.textContent )) //ложим в массив и фильтруем по тексту в кнопке
    var link= links[0] //выделяем первый найденный элемент
    parent = link.parentNode;  //ищем родителей
    parent2 = parent.parentNode;
    parent3 = parent2.parentNode;
    parent4 = parent3.parentNode;
    parent5 = parent4.parentNode;
    var clientRect = parent5.getClientRects() //выделяем координаты элемента
    clientX = clientRect[0].x
    clientY = clientRect[0].y
    var o = document.createEvent('MouseEvents'); //создаем событие по координатам
    o.initMouseEvent( 'mousedown', true, true, window, 1, 0, 0, clientX, clientY, false, false, true, false, 0, null );
    parent5.dispatchEvent(o);
    Ответ написан
    Комментировать
  • Поиск элемента по тексту document.querySelector, какой селектор подобрать?

    @vlatek Автор вопроса
    Digital Nomad
    Решение
    setTimeout(function() {
      let link = document.querySelectorAll('label');  //собираем все элементы label в nodelist
      link = Array.from( link ).filter( e => (/Текст/i).test( e.textContent ) ); //переводим в массив и фильтруем по тексту
      link[0].click();  //кликаем по первому элементу массива
    });
    Ответ написан
    Комментировать