package org.example;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.interactions.Actions;

public class TelegramUsernames {
    public static void main(String[] args) throws InterruptedException, IOException {
        // Установите путь к драйверу Edge
        System.setProperty("webdriver.edge.driver", "C:/MyCode/Tools/Msegdriver/edgedriver_win64 v115.0.1901.9/msedgedriver.exe");
        // Создайте экземпляр драйвера
        WebDriver driver = new EdgeDriver();
        // Откройте Telegram в браузере
        driver.get("https://web.telegram.org/k/#@prepodsteam");
        Thread.sleep(15000);
        driver.get("https://web.telegram.org/k/#@prepodsteam");
        Thread.sleep(3000);
        // Находим все элементы с классом "peer-title"
        var doc = Jsoup.connect(driver.getCurrentUrl()).get();
        Elements allPeerTitles = doc.select("span.peer-title");
        Elements filteredPeerTitles = new Elements();
        for (Element peerTitle : allPeerTitles) {
            if (!peerTitle.hasAttr("data-exclude")) {
                filteredPeerTitles.add(peerTitle);
            }
        }
        // Получение объекта HTML с помощью селектора CSS
        WebElement repliesElementSelenium = driver.findElement(By.cssSelector("replies-element[data-post-key='-1361050199_4294969813']"));
        Elements repliesElements = doc.select("replies-element[data-post-key='-1361050199_4294969813']");
        Element repliesElement = repliesElements.first();
        // Выполнение действий с объектом HTML (например, нажатие на него)
        repliesElementSelenium.click();
        Thread.sleep(2000);
        Set<String> links = new HashSet<>();
        for (Element element : filteredPeerTitles) {
            // Получаем значение атрибута "data-peer-id"
            String peerId = element.attr("data-peer-id");
            // Создаем экземпляр класса Actions
            Actions actions = new Actions(driver);
            // Перемещаем курсор мыши на элемент и кликаем на нем
            actions.moveToElement(element).click().perform();
            // Ждем, пока страница загрузится
            Thread.sleep(2000);
            // Получаем ссылку на текущую страницу
            String currentUrl = driver.getCurrentUrl();
            Thread.sleep(2000);
            // Добавляем ссылку в множество, если ее там еще нет
            if (!links.contains(currentUrl)) {
                links.add(currentUrl);
            }
            // Находим кнопку с классом "sidebar-close-button"
            WebElement closeButton = driver.findElement(By.className("sidebar-close-button"));
            // Кликаем на кнопку
            closeButton.click();
        }
        // Выводим уникальные ссылки
        for (String link : links) {
            System.out.println(link);
        }
        // Закрываем драйвер
        driver.quit();
    }
}



/*        // Получите список имен пользователей и запишите их в файл
        List<WebElement> usernames = driver.findElements(By.xpath("//div[@class='im_dialog_peer']//span[@class='im_dialog_peer_name']"));
        FileWriter writer = new FileWriter("usernames.txt");
        for (WebElement username : usernames) {
            String name = username.getText();
            writer.write(name + "\n");
            System.out.println(name);
        }
        writer.close();

        // Закройте браузер
        driver.quit();*/


Как превратить Element в WebElement или как-нибудь по другому исправить эту проблему