如何在页面中使用 selenium 登录?
How can I log in with selenium in a page?
我尝试使用我的凭据登录我的学校帐户,以填写每学期他们让我们填写的 10 个长调查,否则我们无法执行任何功能。我正在使用 selemiun webdriver 在我睡觉时自动执行所有操作。
我尝试使用以下代码登录:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
USERNAME = xxxxxxx
PASSWORD = xxxxxxx
driver = webdriver.Chrome('C:\Dev\WebDrivers\garou-bruteforce-master\chromedriver.exe')
driver.get('http://siiauescolar.siiau.udg.mx/')
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[name="p_codigo_c"]'))).send_keys(USERNAME)
driver.find_element_by_css_selector('input[name="p_clave_c"]').send_keys(PASSWORD)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[type="submit"]'))).click()
但是得到这个错误:
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
Backtrace:
Ordinal0 [0x005F6023+2514979]
Ordinal0 [0x0058F6B1+2094769]
Ordinal0 [0x004926C8+1058504]
Ordinal0 [0x004BD2D8+1233624]
Ordinal0 [0x004BD4CB+1234123]
Ordinal0 [0x004E7652+1406546]
Ordinal0 [0x004D635A+1336154]
Ordinal0 [0x004E59FF+1399295]
Ordinal0 [0x004D61EB+1335787]
Ordinal0 [0x004B2617+1189399]
Ordinal0 [0x004B3479+1193081]
GetHandleVerifier [0x00785624+1579748]
GetHandleVerifier [0x00830417+2279639]
GetHandleVerifier [0x0068473B+527355]
GetHandleVerifier [0x006837E9+523433]
Ordinal0 [0x00594BF9+2116601]
Ordinal0 [0x00599238+2134584]
Ordinal0 [0x00599372+2134898]
Ordinal0 [0x005A2EB1+2174641]
BaseThreadInitThunk [0x76D36359+25]
RtlGetAppContainerNamedObjectPath [0x774F8944+228]
RtlGetAppContainerNamedObjectPath [0x774F8914+180]
如何解决这个问题?非常感谢。
您尝试访问的元素在框架内。您必须切换到该框架才能访问这些元素。
试试这个:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
USERNAME = xxxxxxx
PASSWORD = xxxxxxx
driver = webdriver.Chrome('C:\Dev\WebDrivers\garou-bruteforce-master\chromedriver.exe')
driver.get('http://siiauescolar.siiau.udg.mx/')
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame[name='mainFrame']")))
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[name="p_codigo_c"]'))).send_keys(USERNAME)
driver.find_element_by_css_selector('input[name="p_clave_c"]').send_keys(PASSWORD)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[type="submit"]'))).click()
我尝试使用我的凭据登录我的学校帐户,以填写每学期他们让我们填写的 10 个长调查,否则我们无法执行任何功能。我正在使用 selemiun webdriver 在我睡觉时自动执行所有操作。
我尝试使用以下代码登录:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
USERNAME = xxxxxxx
PASSWORD = xxxxxxx
driver = webdriver.Chrome('C:\Dev\WebDrivers\garou-bruteforce-master\chromedriver.exe')
driver.get('http://siiauescolar.siiau.udg.mx/')
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[name="p_codigo_c"]'))).send_keys(USERNAME)
driver.find_element_by_css_selector('input[name="p_clave_c"]').send_keys(PASSWORD)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[type="submit"]'))).click()
但是得到这个错误:
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
Backtrace:
Ordinal0 [0x005F6023+2514979]
Ordinal0 [0x0058F6B1+2094769]
Ordinal0 [0x004926C8+1058504]
Ordinal0 [0x004BD2D8+1233624]
Ordinal0 [0x004BD4CB+1234123]
Ordinal0 [0x004E7652+1406546]
Ordinal0 [0x004D635A+1336154]
Ordinal0 [0x004E59FF+1399295]
Ordinal0 [0x004D61EB+1335787]
Ordinal0 [0x004B2617+1189399]
Ordinal0 [0x004B3479+1193081]
GetHandleVerifier [0x00785624+1579748]
GetHandleVerifier [0x00830417+2279639]
GetHandleVerifier [0x0068473B+527355]
GetHandleVerifier [0x006837E9+523433]
Ordinal0 [0x00594BF9+2116601]
Ordinal0 [0x00599238+2134584]
Ordinal0 [0x00599372+2134898]
Ordinal0 [0x005A2EB1+2174641]
BaseThreadInitThunk [0x76D36359+25]
RtlGetAppContainerNamedObjectPath [0x774F8944+228]
RtlGetAppContainerNamedObjectPath [0x774F8914+180]
如何解决这个问题?非常感谢。
您尝试访问的元素在框架内。您必须切换到该框架才能访问这些元素。
试试这个:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
USERNAME = xxxxxxx
PASSWORD = xxxxxxx
driver = webdriver.Chrome('C:\Dev\WebDrivers\garou-bruteforce-master\chromedriver.exe')
driver.get('http://siiauescolar.siiau.udg.mx/')
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame[name='mainFrame']")))
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[name="p_codigo_c"]'))).send_keys(USERNAME)
driver.find_element_by_css_selector('input[name="p_clave_c"]').send_keys(PASSWORD)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[type="submit"]'))).click()