#python #selenium-webdriver
Вопрос:
Я пытаюсь заполнить различные опросы в своем университетском аккаунте автоматизированным способом с помощью selenium.
Я хочу нажать на «ЭСКОЛАР» в части следующего фрагмента кода:
lt;tbodygt;lt;trgt;lt;td class="title"gt; MODULO lt;/tdgt;lt;/trgt; lt;trgt;lt;tdgt; lt;img src="/ows-img/closed.gif" alt="ALUMNOS"gt; lt;a href="/wpr/gupmenug.menu?p_sistema_c=ALUMNOSamp;amp;p_sistemaid_n=4amp;amp;p_menupredid_n=4amp;amp;p_pidm_n=425370amp;amp;p_majr_c=425370" target="Menu"gt;ALUMNOSlt;/agt; lt;/tdgt;lt;/trgt; lt;trgt;lt;tdgt; lt;img src="/ows-img/closed.gif" alt="ESCOLAR"gt; lt;a href="/wse/gupmenug.menu?p_sistema_c=ESCOLARamp;amp;p_sistemaid_n=1amp;amp;p_menupredid_n=1amp;amp;p_pidm_n=425370" target="Menu"gt;ESCOLARlt;/agt; lt;/tdgt;lt;/trgt; lt;/tbodygt;
Это ошибка, которую я получаю:
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 wait = WebDriverWait(driver, 3) wait.until(EC.visibility_of_element_located((By.XPATH, "//a[text()='ESCOLAR']"))).click()
Как я могу это исправить?
Комментарии:
1. Является ли этот локатор уникальным? Появляется ли этот элемент внутри видимого экрана, когда вы открываете эту страницу, или вам нужно прокрутить его, чтобы увидеть?
2. Да, этот локатор уникален, и этот элемент отображается внутри видимого экрана
3. ОК. Это внутри какой-то рамки? Из фрагмента HTML, которым вы поделились, этого не видно…
4. Трудно догадаться, не видя веб-страницу визуально… Может быть, вместо
"//a[text()='ESCOLAR']"
того, чтобы пытаться"//a[contains(text(),'ESCOLAR')]"
…5. Я нахожу проблему:
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame[name='Menu']")))