Несмотря на то, что общий совет по этой теме довольно хорош, он довольно широк.Я сам решил эту проблему, и, несмотря на тот факт, что я опубликовал полнофункциональный пример, он был удален модератором, несмотря на то, что «теоретически отвечает на вопросы».
Итак, для всех, кто хочет решить эту проблему, вы захотите сделать следующее: Используйте Selenium и openpyxl, это два относительно простых модуля, которые отлично справятся с этой задачей.
Вы будете использовать селен, чтобы открыть свою веб-страницу и получить соответствующуюHTML-элементы, которые вы хотите заполнить.Я предлагаю найти элементы по xPath, если вы плохо разбираетесь в HTML.Xpath finder google chrome addon сделает это очень простым.
driver.get () и driver.find_element_by_xpath () будут необходимыми вам функциями.
Мы будем использовать openpyxlработать с нашим листом Excel.load_workbook () загрузит рабочую книгу.Затем мы будем использовать функцию «sheet = workbook.active» для доступа к листу из рабочей книги.
Теперь у нас есть возможность открыть наш веб-сайт и выбрать лист Excel.
Сейчаснам нужно присвоить значения ячеек переменным, чтобы мы могли затем заполнить форму HTML.Мы присваиваем переменную каждому столбцу в рабочей книге.Таким образом, если столбец A содержал first_names, мы могли бы присвоить это переменной, написав 'FNAME = sheet [' A '].Теперь, когда у нас есть способ ссылки на ячейки в столбцах, мы можем начать подачу данных в нашу HTML-форму.
Мы заполняем нашу форму с помощью функции .send_keys () в Selenium.
first_name.send_keys(FNAME.value)
.value гарантирует, что отображается правильное значение, так как иногда селен будет печатать функцию ячейки, а не значение, мы не хотим, чтобы это произошло.
Теперь, когда мы можем печатать значения в нашем HTMLформы из нашего листа Excel нам нужно будет перебирать каждую строку.Мы делаем это с помощью цикла while:
i = 1
x = 1
while x <= 50:
first_name.send_keys(FNAME[i].value)
i+=1
x+=1
driver.quit
Когда цикл повторяется 50 раз, драйвер завершит работу, закроет браузер и остановит скрипт.
Некоторые другие полезные вещи, которые вы можете найти полезными при попытке автоматизировать это:
driver.back()
time.sleep()
Если вы хотите увидеть реальный рабочий пример, не стесняйтесь PM мне, как, очевидно, разместив его здесьне способствует обсуждению.