Не удается смоделировать событие клика с javascript в «веб-приложении» - PullRequest
2 голосов
/ 20 апреля 2020

Я искал много информации об этом, но пока не нашел решения.

Моя проблема заключается в следующем, я создаю расширение для ускорения перемещения по нескольким веб-страницам, мне удалось со многими из них, но я пришел к тому, что не могу смоделировать щелчок с Javascript, и я не знаю, как это сделать.

Одна из страниц такова: https://sports.betway.es/es/sports/in-play Страница находится в домене Spani sh, поэтому я не знаю, могут ли они получить к нему доступ из другой страны (без vpn), хотя я думаю, что с доменом ".com" это работает.

Код выглядит следующим образом, все довольно просто.

var deportesActivos = document.getElementsByClassName("categoryListItemWrapper contentSelectorItemButton")
for(let i=0;i<deportesActivos.length;i++){
    let nombre = deportesActivos[i].lastChild.firstChild.innerText
    if(nombre == data.deporte){
        deportesActivos[i].click()
    }
}

deportesActivos Я собираю элементы DIV с этим классом со страницы. deportesActivos[i].lastChild.firstChild.innerText Я извлекаю текст каждого элемента

if(nombre == data.deporte){
  deportesActivos[i].click()
}

Когда он совпадает, нажмите, чтобы ввести ссылку.

Проблема в том, что щелчок не имитирует меня. Я купил именно тот элемент, на который вы нажимаете, я нажал вручную, и он работает, я пытался нажать на другие элементы веб-страницы, и он не работает, я пытался дать "слушателя по щелчку" элемент и он тоже не работает. HTML страницы выглядит следующим образом: Изображение с HTML Код веб-сайта

Я не знаю, помогает ли это, но при сборке веб-сайта с помощью Ioni c приложение не работает enter image description here

1 Ответ

0 голосов
/ 20 апреля 2020

Событие click не полностью имитирует щелчок пользователя. Он просто запускает обработчик onClick для целевого элемента (и любых родителей).

Если вы просто перенаправляете на новый URL при нажатии кнопки, вы можете просто сделать это в своем oop вместо.

// get the links, not the buttons
var deportesActivos = document.getElementsByClassName("categoryListItemWrapper contentSelector");

for (let i=0; i < deportesActivos.length; i++) {
    // Drill down one extralevel to get the button text
    let nombre = deportesActivos[i].firstChild.lastChild.firstChild.innerText;
    if (nombre === data.deporte) {
        // Redirect to the href in the link        
        window.location.href = deportesActivos[i].href;
    }
}
...