import time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

def get_token_info(token_symbol):
    chrome_options = Options()
    chrome_options.add_argument("–headless")

    # Update the path below to the actual path to your WebDriver executable
    service = Service(
        executable_path="C:\\Users\\AshotxXx\\PycharmProjects\\Parcing\\pythonProject\\ChromeDriver\\chromedriver.exe")
    driver = webdriver.Chrome(service=service, options=chrome_options)
    driver.get("https://moonarch.app/")

    try:
        # Switch to the iframe (replace iframe_element with the correct frame element reference)
        driver.switch_to.frame('typeahead-input-87261')

        search_box = driver.find_element_by_xpath('/html/body/div/div[2]/nav/div[3]/div/div[1]/input')
        # Find the search box and interact with it
        search_box(token_symbol)
        # Switch back to the main content
        driver.switch_to.default_content()

        # Wait for the token info and infocard elements to appear after entering the symbol
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "token-info")))
        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "infocard")))

        # Extract information using BeautifulSoup
        soup = BeautifulSoup(driver.page_source, "html.parser")

        token_info_element = soup.find("div", class_="token-info")
        infocard_element = soup.find("div", class_="infocard")
        check_alert_element = soup.find("div", class_="token-check-message check-alert")
        check_warning_element = soup.find("div", class_="token-check-message check-warning")
        check_info_element = soup.find("div", class_="token-check-message check-info")
        not_verified_element = soup.find("div", class_="not-verified")

        check_alert_status = "Yes" if check_alert_element else "None"
        check_warning_status = "Yes" if check_warning_element else "None"
        check_info_status = "Yes" if check_info_element else "None"
        not_verified_status = "Yes" if not_verified_element else "None"

        if token_info_element and infocard_element:
            token_name_element = token_info_element.find("span", class_="name")
            token_symbol_element = token_info_element.find("span", class_="symbol")
            info_items = infocard_element.find_all("li")

            if token_name_element and token_symbol_element and len(info_items) >= 7:
                token_name = token_name_element.text.strip()
                token_symbol = token_symbol_element.text.strip()
                price = info_items[0].find("span", class_="value").text.strip()
                max_supply = info_items[1].find("span", class_="value").text.strip()
                market_cap = info_items[2].find("span", class_="value").text.strip()
                liquidity = info_items[3].find("span", class_="value").text.strip()
                liq_mc = info_items[4].find("span", class_="value").text.strip()
                token_age = info_items[6].find("span", class_="value").text.strip()

                driver.quit()

                return {
                    "name": token_name,
                    "symbol": token_symbol,
                    "price": price,
                    "max_supply": max_supply,
                    "market_cap": market_cap,
                    "liquidity": liquidity,
                    "liq_mc": liq_mc,
                    "token_age": token_age,
                    "check_alert": check_alert_status,
                    "check_warning": check_warning_status,
                    "check_info": check_info_status,
                    "not_verified": not_verified_status
                }


            else:
                driver.quit()
                error_info = f"token_name_element: {token_name_element}, token_symbol_element: {token_symbol_element}, info_items count: {len(info_items)}"
                return {"error": f"Failed to find the required info items or name and.symbol. Error_info: {error_info}"}

        else:
            driver.quit()
            return {"error": f"Failed to find the required elements for token_info_element ({token_info_element}) and infocard_element ({infocard_element})."}


    except Exception as e:
        driver.quit()
        return {"error": f"Failed to find the required elements or error occurred: {e}"}

token_symbol = "0x0E481Fa712201f61dAf97017138Efaa69e2A3df3"
print(get_token_info(token_symbol))

The code above throws an error. The error is below

C:\Users\AshotxXx\PycharmProjects\Parcing\pythonProject\venv\Scripts\python.exe C:\Users\AshotxXx\PycharmProjects\Parcing\pythonProject\ChromeDriver\main.py 
{'error': 'Failed to find the required elements or error occurred: Message: typeahead-input-87261\n'}

Process finished with exit code 0

<div data-v-274f1e68="" id="typeahead-26687" role="combobox" aria-haspopup="listbox" aria-owns="result-list-26687" aria-expanded="false"><div data-v-274f1e68="" class="input-group"><!----><input data-v-274f1e68="" id="typeahead-input-26687" type="text" role="searchbox" aria-multiline="false" aria-autocomplete="list" aria-controls="result-list-26687" aria-activedescendant="selected-option-26687" placeholder="Search token for analysis" aria-label="Search token for analysis" class="form-control "><!----></div><div data-v-274f1e68="" class="list-group shadow vbt-autcomplete-list" id="result-list-26687" role="listbox" style="display: none; width: 815px;"></div></div>

Change the code so that the specified parameters are entered in the search field. Be sure to use an iframe as the other methods don't work