Поэтому я пытаюсь войти на сайт, используя Python и Selenium. Однако проблема в том, что если я использую настоящий веб-сайт, я получаю пустой экран, и ни один из элементов не обнаруживается или не обнаруживается. Я подозреваю, что я не жду, пока страница загрузится. Но я не уверен, что это правильно. Я использую родительский URL, который перенаправил меня туда, и он загрузился в новую вкладку с веб-драйвером Chromium. Моя проблема в том, как мне войти, я пробовал множество методов, но ни один из них не удался.
Родительский URL: https://www.texasassessment.com/
Если я нажимаю на кнопку STAAR Portal, я перехожу на дочерний URL-адрес, к которому я пытаюсь войти. ,
Дочерний URL (Перенаправление): https://tx-login.ets.org/oaam_server/login.do
Если я закодирую Дочерний URL-адрес как основной для оператора Get, он никогда не загружается и просто остается белый.
Вот если я кодирую его с browser.get("https://tx-login.ets.org/oaam_server/login.do")
Однако, если я go на родительский URL: https://www.texasassessment.com/
И следуйте по кликам на фактический дочерний URL, он откроет новую ссылку. Код для прямого доступа к дочернему URL:
import selenium
import shutil
import xlsxwriter
import os
import unittest
import requests
import getpass
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from datetime import date
import json
with open('secrets.json','r') as f:
config = json.load(f)
# Definitions
# find_elements_by_name
# find_elements_by_xpath
# find_elements_by_link_text
# find_elements_by_partial_link_text
# find_elements_by_tag_name
# find_elements_by_class_name
# find_elements_by_css_selector
# System Variables
today = date.today()
date = today.strftime("%m/%d/%Y")
username = getpass.getuser()
# URL Variables
login_url = ''
redirect_url = ''
# WebDriver Path for Windows 10
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\chromedriver.exe")
# Parent URL
browser.get("https://tx-login.ets.org/oaam_server/login.do")
# Credentials NEEDS TO BE ENCRYPTED AND NOT BAKED INTO THE SCRIPT NEEDS UNIT TEST
username = browser.find_element_by_id("Username")
password = browser.find_element_by_id("Password")
username.send_keys(config['user']['name'])
password.send_keys(config['user']['password'])
# Authentication submit.click()
# For XPATH = //*[@id='qa-button-login']
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='qa-button-login']")))
element.click();
Код, который перемещается туда и загружает фактическую страницу:
import selenium
import shutil
import xlsxwriter
import os
import unittest
import requests
import getpass
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from datetime import date
import json
with open('secrets.json','r') as f:
config = json.load(f)
# Definitions
# find_elements_by_name
# find_elements_by_xpath
# find_elements_by_link_text
# find_elements_by_partial_link_text
# find_elements_by_tag_name
# find_elements_by_class_name
# find_elements_by_css_selector
# System Variables
today = date.today()
date = today.strftime("%m/%d/%Y")
username = getpass.getuser()
# URL Variables
login_url = ''
redirect_url = ''
# WebDriver Path for Windows 10
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\chromedriver.exe")
# Parent URL
browser.get("https://www.texasassessment.com/administrators/")
# Click on Star Portal
# For XPATH = /html/body/div[2]/section[1]/div/div/div/div[1]/div/div/a[3]
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "/html/body/div[2]/section[1]/div/div/div/div[1]/div/div/a[3]")))
element.click();
# Credentials NEEDS TO BE ENCRYPTED AND NOT BAKED INTO THE SCRIPT NEEDS UNIT TEST
username = browser.find_element_by_id("Username")
password = browser.find_element_by_id("Password")
username.send_keys(config['user']['name'])
password.send_keys(config['user']['password'])
# Authentication submit.click()
# For XPATH = //*[@id='qa-button-login']
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='qa-button-login']")))
element.click();
В целом страница никогда не загружается и / или если происходит перенаправление, элементы и XPATHS никогда не обнаруживаются. Я пытаюсь войти на эту страницу с Python и Selenium: https://tx-login.ets.org/oaam_server/login.do