• Как эмулировать согласие на обработку данных?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    данный код не работает

    Конечно не работает, Вы обращаетесь к свойству click (которого не существует), а не к методу click().
    # driver.find_element("xpath", "//input[@id='LinkDa']" ).click
    driver.find_element("xpath", "//input[@id='LinkDa']" ).click()

    Полный вариант:
    import time
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Chrome()
    driver.get('https://autoins.ru/osago/raschet-stoimosti-osago/proverit-kbm/')
    
    # Debug
    time.sleep(10)
    
    checkbox = driver.find_element(By.XPATH, '//label[@for="linkDa"]')
    checkbox.click()
    
    # Debug
    time.sleep(10)
    
    button = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, "btnDa"))
    )
    
    button.click()
    
    # Debug
    time.sleep(10)
    
    driver.quit()
    Ответ написан
    Комментировать
  • Как привязать значение переменной к строчке/столбцу в эксель чтобы получить значение ячейки?

    @imba
    """
    0) проблема твоей таблицы, в том что есть ячейки содержащие несколько значении и наити нужную можно только пройдя по ним и сравнивая целевое значение с теми что есть в ячейке , это долго тем более если несколько запросов от пользователя будет

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

    2) НО если по какой-то не озвученной причине, важно читать напрямую, то либо брать значение ввода а потом искать в какой ячейке оно есть и запоминать индекс а дальше по наиденным индексам читать значение ячейки с коэффициентом

    result = ws.cell(row=row_id, column=column_id).value

    или можно так

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

    """

    factory = {
    "возраст":{18:3, 19:3, лет:номер_строки}
    "стаж":{0:2, 1:3, 3:4, 4:4 , лет:номер_ряда }
    }

    command_row = input('введите команду и значение: ')
    # например пользователь вводит
    # возраст = 18

    command = command_row.split('=')
    # содержимое command = ['возраст ', ' 18']

    #дальше обращаемся к нашим словарям по ключам и лучше через метод get наслучай если ввели что-то не то

    row_id = factory.get(command_row[0].strip(),{}).get(int(command_row[1].strip()))

    #равноценно factory["возраст"][18]
    #даст тебе номер строки или столбца в зависимости от команды
    #row_id , column_id значения которые вернет тебе этот словарь factory для команды возраст и стаж - неперепутаи)))

    #получить само значение будет просто
    #как тебе гпт написало, открываем фаил и таблицу а дальше берем наши индексы и читаем содержимое ячейки
    result = ws.cell(row=row_id, column=column_id).value
    Ответ написан
    2 комментария