msn.com

alexoffice

Client
Регистрация
10.10.2010
Сообщения
8
Благодарностей
3
Баллы
3
Добрый день!
Помогите с msn.com
не находит форм и т.д куда не тыкни выдает вот такое на скринах

Помогите обойти, Спасибо!
 

Вложения

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 914
Благодарностей
1 655
Баллы
113
а конкретней? перейти по ссылке и куда надо нажать? Что именно не получается? xPath пробовали?
 

alexoffice

Client
Регистрация
10.10.2010
Сообщения
8
Благодарностей
3
Баллы
3
а конкретней? перейти по ссылке и куда надо нажать? Что именно не получается? xPath пробовали?
xPath -знаний не хватает от слова совсем :-) , нажать на поиск и ввести фразу, перейти по новости (любой) то что ниже...
 

SellProduct_AD

Новичок
Регистрация
05.04.2025
Сообщения
19
Благодарностей
7
Баллы
3
xPath -знаний не хватает от слова совсем :-) , нажать на поиск и ввести фразу, перейти по новости (любой) то что ниже...
для клика, выполняете JS со своим селектором. в примере клик по полю ввода
JavaScript:
var result = (function findAndClick(root = document) {
    // 1. Поиск Элемента в текущем root (document или shadowRoot)
    const button = root.querySelector('#q');
    
    if (button) {
        button.click();
        return true; // Элемент найден и кликнут
    }
    
    // 2. Поиск всех shadowRoot внутри текущего root
    const shadowRoots = Array.from(root.querySelectorAll('*'))
        .filter(el => el.shadowRoot)
        .map(el => el.shadowRoot);
    
    // 3. Рекурсивный поиск в каждом shadowRoot
    for (const shadowRoot of shadowRoots) {
        if (findAndClick(shadowRoot)) return true;
    }
    
    return false; // Элемент не найден
})();

return result ? "Элемент найден и нажат" : "Элемент не найден";
после клика, можно использовать эмуляцию клавиатуры
 
  • Спасибо
Реакции: alexoffice

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
646
Благодарностей
590
Баллы
93
для клика, выполняете JS со своим селектором. в примере клик по полю ввода
JavaScript:
var result = (function findAndClick(root = document) {
    // 1. Поиск Элемента в текущем root (document или shadowRoot)
    const button = root.querySelector('#q');
  
    if (button) {
        button.click();
        return true; // Элемент найден и кликнут
    }
  
    // 2. Поиск всех shadowRoot внутри текущего root
    const shadowRoots = Array.from(root.querySelectorAll('*'))
        .filter(el => el.shadowRoot)
        .map(el => el.shadowRoot);
  
    // 3. Рекурсивный поиск в каждом shadowRoot
    for (const shadowRoot of shadowRoots) {
        if (findAndClick(shadowRoot)) return true;
    }
  
    return false; // Элемент не найден
})();

return result ? "Элемент найден и нажат" : "Элемент не найден";
после клика, можно использовать эмуляцию клавиатуры
сразу видно - поколение gpt, запросил у нейронки код,
а что этот код при работе с зеннопостером не имеет самого важного метода - понимания нет ...

когда мы в браузере кликаем на поле поиска - у нас появляется прямой слэш "|",
который визуально дает понять пользователю, что он может вводить свой поисковой запрос в поле
при работе в зенке - твой код должен обязательно иметь вызов метода фокусировки на этом поле,
который равносилен прямому слешу "|" в браузере, иначе при эмуляции клавиатуры - часть текста может просто не написаться .....

с таким же успехом, мы можем в зенке просто перейти на msn и без всяких кликов сразу вторым кубиком после перехода
начать вводить текст в поле, т.е. второй кубик сразу "эмуляция клавиатуры" - это будет равносильно твоему коду ...
поэтому в твой код обязательно нужно добавить фокусировку: button.focus()

я бы немного упростил конструкцию:
JavaScript:
(function f(r=document){
  if(e=r.querySelector('#q')){ e.click(); e.focus(); return 1 }
  return [...r.querySelectorAll('*')].some(n=>n.shadowRoot&&f(n.shadowRoot))||0
})()
 
  • Спасибо
Реакции: alexoffice

alexoffice

Client
Регистрация
10.10.2010
Сообщения
8
Благодарностей
3
Баллы
3

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)