Как найти элементы на сайте JavaScript с Selenium? - PullRequest
1 голос
/ 07 апреля 2020

Я хочу автоматизировать поиск для себя, но у меня есть небольшая проблема здесь. На этом сайте:

https://shop.orgatop.de/

Программа не может найти строку поиска, и я не знаю, почему.

driver = webdriver.Firefox()
driver.get('https://shop.orgatop.de/')
input_search = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="solrSearchTerm"]')))
input_search.click()
input_search.send_keys('asd')
input_search.send_keys(Keys.RETURN)

1 Ответ

1 голос
/ 07 апреля 2020

Элемент присутствует внутри вложенного iframe, как innerFrame>catalog>content>input. Вам нужно переключить первый порядок этих кадров, чтобы получить доступ к окну поиска ввода.

Induce WebDriverWait () и frame_to_be_available_and_switch_to_it ()

driver = webdriver.Firefox()
driver.get('https://shop.orgatop.de/')
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"innerFrame")))
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"catalog")))
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME,"content")))
input_search = WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="solrSearchTerm"]')))
input_search.click()
input_search.send_keys('asd')
input_search.send_keys(Keys.RETURN)

Снимок браузера:

enter image description here

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