因此,我尝试使用Python和Selenium登录网站。但是,问题是,如果我使用实际的网站,则会出现空白屏幕,并且所有元素均不可检测或找到。我怀疑我没有等待足够长的时间来加载页面。但是我也不确定那是正确的。我使用了一个父URL,该URL将我重定向到该URL,并使用Chromium Web驱动程序将其加载到一个新选项卡中。我的问题是如何登录,我尝试了许多方法,但没有一个成功。
父URL:https://www.texasassessment.com/
[如果我单击STAAR Portal按钮,它将带我到孩子URL,这是我要登录的孩子。
子URL(重定向):https://tx-login.ets.org/oaam_server/login.do
如果我将子级URL编码为Get语句的主要URL,则它将永远不会加载,只会保持白色。
就是我用browser.get("https://tx-login.ets.org/oaam_server/login.do")
编码的时候>
但是,如果我转到父URL:https://www.texasassessment.com/
然后点击并进入实际的子网址,它将打开一个新链接。直接提取子级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();
所有页面中的所有页面永远不会加载,和/或如果发生重定向,则永远不会找到Elements和XPATHS。我正在尝试使用Python和Selenium登录此页面:https://tx-login.ets.org/oaam_server/login.do
因此,我尝试使用Python和Selenium登录网站。但是,问题是,如果我使用实际的网站,则会出现空白屏幕,并且所有元素均不可检测或找到。我怀疑...
使用以下xpath
单击。