selenium.common.exceptions.NoSuchElementException: такого элемента нет: невозможно найти элемент. Я пробовал этот драйвер.implicitly_wait (20), но не работает - PullRequest
1 голос
/ 06 июля 2019

У меня есть эта проблема

я попробовал это

driver.implicitly_wait(20)

но не работает и та же проблема

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#user_username"}
  (Session info: chrome=75.0.3770.100)

отображается после загрузки веб-сайта

я не могу получить доступ к форме это ссылка на форму https://accounts.esri.com/en/login

это простой код

    from selenium import webdriver
    URL = 'https://accounts.esri.com/en/login'
    userName = 'test'
    passWord = 'test'
    driver = webdriver.Chrome()
    driver.get(URL)
    time.sleep(10)
    passWordInput = driver.find_element_by_css_selector('#user_username')
    passWordInput.send_keys(userName)
    passWordInput = driver.find_element_by_css_selector('#user_password')
    passWordInput.send_keys(passWord)
    buttonSignIn = driver.find_element_by_css_selector('#signIn')
    buttonSignIn.click()
    time.sleep(5)

1 Ответ

0 голосов
/ 06 июля 2019

Эта форма находится внутри <iframe>, и для браузера это другая страница, поэтому она не может найти ее.Вы должны использовать switch_to.frame, чтобы изменить кадр, а затем вы можете искать в этом кадре.

from selenium import webdriver
import time

URL = 'https://accounts.esri.com/en/login'

userName = 'test'
passWord = 'test'

driver = webdriver.Chrome()
#driver = webdriver.Firefox()
driver.get(URL)
time.sleep(10)

f = driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(f)

passWordInput = driver.find_element_by_css_selector('#user_username')
passWordInput.send_keys(userName)

passWordInput = driver.find_element_by_css_selector('#user_password')
passWordInput.send_keys(passWord)

buttonSignIn = driver.find_element_by_css_selector('#signIn')
buttonSignIn.click()

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