selenium нет такого элемента: невозможно найти элемент: из входа в POPUP - PullRequest
0 голосов
/ 27 мая 2020

Я собираюсь убрать сайт https://www.trademap.org/Index.aspx. Если я нажму кнопку входа в систему, появится небольшое всплывающее окно входа в систему. Однако список идентификаторов не включает это маленькое окно. Например, я пытался подождать, пока кнопка «ВХОД» не станет доступной, что, к сожалению, привело к невозможности найти элемент (я также положил время на сон). Как мне получить доступ к ID в этом маленьком окошке? enter image description here

Я пробовал:

#WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "PageContent_Login1_Button")))


#driver.find_element_by_id('PageContent_Login1_UserName').send_keys(username)
#driver.find_element_by_id('PageContent_Login1_Password').send_keys(password)


driver.find_element_by_name('ctl00$PageContent$Login1_UserName').send_keys("my_first_name")

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

WebDriverWait (драйвер, 10) .until (E C .frame_to_be_available_and_switch_to_it ("iframe_login"))

0 голосов
/ 27 мая 2020

Я знал, что где-то есть iframe. См. Ниже.

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

driver = webdriver.Chrome()
driver.get('https://www.trademap.org/Index.aspx')

wait = WebDriverWait(driver, 10)

# click login button
e = wait.until(EC.element_to_be_clickable(
    (By.ID, 'ctl00_MenuControl_Label_Login')))
e.click()

time.sleep(5)

# switch to iframe
wait.until(
    EC.frame_to_be_available_and_switch_to_it((By.ID, 'iframe_login')))

# fill in username
e = wait.until(EC.visibility_of_element_located(
    (By.ID, 'PageContent_Login1_UserName')))
e.clear()
e.send_keys('justin@was.here')

time.sleep(5)

# back to main document
driver.switch_to.default_content()

# close popup
e = wait.until(EC.element_to_be_clickable(
    (By.ID, 'ctl00_MenuControl_Button_ClosePopupLogin')))
e.click()

time.sleep(5)

driver.quit()

Я уверен, вы можете взять его отсюда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...