нет такого элемента: невозможно найти элемент python id - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь отправить send_keys на этот вход:

<input id="textfield-1017-inputEl" data-ref="inputEl" type="text" size="1" name="search" placeholder="Find Bunker.." aria-hidden="false" aria-disabled="false" role="textbox" aria-invalid="false" aria-readonly="false" aria-describedby="textfield-1017-ariaStatusEl" aria-required="false" class="searchfield x-form-text x-form-text-default  x-form-empty-field x-form-empty-field-default" autocomplete="off" data-componentid="textfield-1017">

, но всегда получаю эту ошибку:

Сообщение: нет такого элемента: Невозможно найти элемент: { "method": "css selector", "selector": "[id =" textfield-1017-inputEl "]"} (информация о сеансе: chrome = 80.0.3987.163)

Я используя селен в python, и это код, который я использую:

find_my_input = browser.find_element_by_id('textfield-1017-inputEl')

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Попробуйте решение ниже:

wait = WebDriverWait(driver, 30)
iframe= wait.until(EC.presence_of_element_located((By.ID, "ext-gen1099")))
driver.switch_to.frame(iframe)

element= WebDriverWait(driver, 30).until(
                EC.element_to_be_clickable((By.ID, "textfield-1017-inputEl")))

Примечание: , пожалуйста, добавьте ниже импорта в ваше решение

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
0 голосов
/ 12 апреля 2020

Убедитесь, что вы ожидаете загрузки элемента, используя явное ожидание, как показано ниже.

Требуется импорт:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

измените код на ниже.

find_my_input = WebDriverWait(browser,30).until(EC.presence_of_element_located((By.ID,"textfield-1017-inputEl")))

Если элемент присутствует в iframe, вам нужно сначала переключиться на iframe, а затем получить доступ к элементу.

driver.switch_to.frame('id/name goes here')
find_my_input = WebDriverWait(browser,30).until(EC.presence_of_element_located((By.ID,"textfield-1017-inputEl")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...