#python #selenium #selenium-webdriver #web-scraping #selenium-chromedriver
#python #селен #selenium-webdriver #веб-очистка #selenium-chromedriver
Вопрос:
Я использую Selenium для автоматизации нескольких флажков внутри внутреннего веб-портала. Я могу успешно войти на страницу с учетными данными, используя Selenium. Но после входа в систему, если я попытаюсь перейти на нужную страницу, чтобы получить содержимое веб-страницы, даже вход в систему не происходит. И страница остается на самой странице входа, не имея возможности войти в Webportal.
Вот подход, который я использовал:
driver.get('<myLoginURL>') # maximize window driver.maximize_window() # wait for username input, scroll to it, enter username username = WebDriverWait(driver, DELAY).until(EC.presence_of_element_located((By.ID, "inputUsername"))) driver.execute_script("arguments[0].scrollIntoView();", username) username.send_keys("<userID>") ...... similarly with password.....And then submit... submit = WebDriverWait(driver, DELAY).until(EC.element_to_be_clickable((By.CLASS_NAME, "btn"))) driver.execute_script("arguments[0].scrollIntoView();", submit) submit.click() WebDriverWait(driver,DELAY) driver.get("<URL_To be Navigated to>") # WebDriverWait(driver,DELAY).until(driver.get(desired_URL)) url = driver.current_url driver.get(url) source = driver.page_source
Возникли проблемы:
- Веб-страница не будет входить в систему с указанными учетными данными.
- Очищенный контент предоставляет только данные страницы входа (т.е. Введите имя пользователя, введите пароль)
- Может кто-нибудь предложить мне хороший учебник, как эффективно использовать Selenium для :
- Очистите данные с помощью тегов. В настоящее время я в замешательстве, как использовать ‘EC.presence_of_element_located’ и ‘find_element_by_ID’
- Перейдите на веб-страницу, которую я хочу очистить после входа в систему
- как извлечь данные со страницы, которую я хочу
Может кто-нибудь подсказать мне, в чем ошибка, которую я совершаю при навигации по странице и получении данных Заранее большое спасибо
Комментарии:
1. В чем ошибка? Перенаправление на страницу входа при выборе «<url_ для перехода»>? Также: кавычки там не указаны, это ошибка копирования / вставки?
2. ДА.. Спасибо за это .. теперь я отредактировал цитаты. Проблема в том, что я хочу перейти на страницу внутри webportal после входа в систему. Но если я укажу этот новый URL-адрес как driver.get(<navigatedURL>) после кода для входа в систему, драйвер не войдет в систему, и я думаю, что он пытается открыть navigatedURL, даже не войдя в систему. Таким образом, страница остается только на первой странице, не способной даже войти в систему
3. вход в систему займет определенное количество времени … вероятно, не так много, но вы здесь вообще не ждете. Вы нажимаете отправить, а затем сразу переключаете страницы. (кроме того, вам, вероятно, не нужна прокрутка там… Selenium автоматически переходит в режим просмотра при вызове click.) Документация здесь: selenium.dev/documentation/ru
4. Я также пробовал, как и то, как вы предлагали подождать. Но в итоге я выхожу из системы и остаюсь на первой странице. Не могли бы вы предложить мне какой-либо метод, который я могу использовать? Я попробовал WebDriverWait(driver, DELAY).until(driver.get(new_URL)), а также разместил оператор ожидания перед просто driver.get(new_URL)
5. Или есть способ, как просматривать и перемещаться по разделенным вкладкам после открытия страницы входа. Это может быть трудно просматривать (так как оно находится глубоко внутри), и именно поэтому я напрямую пытаюсь указать URL-адрес требуемого идентификатора, который я хочу открыть