找不到带有Selenium的Python中的XPATHS

问题描述 投票:0回答:1

因此,我尝试使用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,则它将永远不会加载,只会保持白色。

enter image description here

就是我用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登录网站。但是,问题是,如果我使用实际的网站,则会出现空白屏幕,并且所有元素均不可检测或找到。我怀疑...

python selenium selenium-webdriver xpath selenium-chromedriver
1个回答
0
投票

使用以下xpath单击。

© www.soinside.com 2019 - 2024. All rights reserved.