Как я могу получить доступ к элементам на странице, которая появляется после успешного входа в систему, используя чистку? - PullRequest
0 голосов
/ 22 сентября 2019

Как получить доступ к элементам страницы, которая появляется после успешного входа в систему В нашем колледже есть веб-сайт, который отображает посещаемость студентов после их входа в систему. Я использую функцию .send_keys для отправки информации о входе в систему, я вижу успешный вход в систему.окно входа тоже! .......... как мне продолжить, чтобы извлечь данные о посещаемости?После успешного входа в систему, если я распечатаю driver.current_url и нажимаю на этот URL-адрес, он снова перенаправляет меня на страницу входа, как мне с этим справиться?

from selenium import webdriver 
import urllib.request
import requests
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome("C:\\Users\\ADITYA\\chromedriver")
driver.get("https://14.139.110.183/geca/") 
time.sleep(1)
username = driver.find_element_by_id("txt_username")
password = driver.find_element_by_id("txt_password")
captcha_input = input()
captcha = driver.find_element_by_id("txtCapcha")

#We have to fill up the captcha on our site . 
#This step is currently done manually, We plan to automate captcha detection using machine Learning.

username.send_keys("myusername")
password.send_keys("mypassword")
captcha.send_keys(captcha_input)
login_attempt = driver.find_element_by_id("btnSubmit")
login_attempt.click()
time.sleep(5)

print(driver.current_url)
#print(browser.cuurent_url)
uurl = driver.current_url
driver.get(uurl)

Я могу успешно войти, но извлечьдополнительные данные, какой URL я должен использовать для извлечения элементов?

1 Ответ

1 голос
/ 23 сентября 2019

Вам нужно использовать driver.get () URL только один раз, чтобы открыть начальную страницу вашего приложения.URL будет автоматически изменяться, когда вы будете взаимодействовать с вашим приложением (нажимая кнопки и ссылки , отправляя формы и т. Д.)

Вы можете получить данные веб-сайта:

  1. Используя функцию driver.find_element () , чтобы найти элемент на странице
  2. Используя element.get_attribute() для получения атрибутов HTML значений и element.text для получения текстового значения данного элемента.

Еще один важный совет -рассмотрите возможность использования Явное ожидание вместо time.sleep, это сделает ваш тест быстрее и надежнее.Ознакомьтесь с Как использовать Selenium для тестирования веб-приложений с использованием технологии AJAX Статья для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...