Элемент (кнопка) не может быть прокручен в поле зрения - PullRequest
0 голосов
/ 10 мая 2019

Итак, я пытаюсь открыть веб-сайт, а затем перейти на определенную страницу, содержащую страницу, с которой мне нужно удалить данные.я могу дать ввод, но до достижения последней кнопки отправки я получаю сообщение об ошибке «selenium.common.exceptions.ElementNotInteractableException: Message: элемент не может быть прокручен в представлении».какие-нибудь идеи?

Я попытался ввести метод ожидания, но он все равно не дает полезных результатов, а скорее замедляет работу сайта.внизу код.

from selenium import webdriver
driver=webdriver.Firefox()

ok=driver.find_element_by_css_selector('#dropdownlistContentdrpState > input').send_keys('Chandigarh')
#time.sleep(5)
ok2=driver.find_element_by_css_selector('#dropdownlistContentdrpSchoolManagement > input').send_keys('Pvt. Unaided')
#driver.refresh()
time.sleep(10)
ok3=driver.find_element_by_css_selector('#btnSearch')
ok3.click()
time.sleep(4)

1 Ответ

1 голос
/ 10 мая 2019

Ошибка "selenium.common.exceptions.ElementNotInteractableException: Message: Element could not be scrolled into view" подразумевает, что элемент, с которым ваша программа пыталась взаимодействовать, не мог быть прокручен в поле зрения.

Чтобы преодолеть это, вы можете ввести WebDriverWait и сначала щелкнуть или использовать element.location_once_scrolled_into_viewа затем нажмите на элемент.

Или вы можете использовать Javascript's executor, чтобы щелкнуть по элементу.

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver,30).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"#btnSearch"))).click()

ИЛИ

ok3=driver.find_element_by_css_selector('#btnSearch')
ok3.location_once_scrolled_into_view
ok3.click()

ИЛИ

ok3=driver.find_element_by_css_selector('#btnSearch')
driver.execute_script("arguments[0].click();",ok3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...