Python: селеновая запись в текстовом поле фрейма / формы / таблицы

#python #python-3.x #selenium

#python #python-3.x #selenium

Вопрос:

Я пытаюсь написать в текстовом поле в этом HTML-коде с помощью python

Я попробовал что-то вроде:

 frames = driver.find_elements_by_tag_name("iframe")
        
for f in frames:
      print ("FRAMES ID:", f.get_attribute('id'),"Frame names", f.get_attribute('name'))
      id_report = f.get_attribute('id')
iframe = driver.find_element_by_id(id_report)
driver.switch_to.frame(iframe)
elem = driver.find_elements_by_xpath(("//*[@id='b_s2_s11_l2s11_ctl00_reg_period<>_i']"))
elem.click()
 

HTML —> здесь

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

selenium.common.exceptions.Исключение NoSuchElementException: Сообщение: нет такого элемента: невозможно найти элемент

Комментарии:

1. Было бы полезно знать весь стек, чтобы также понять, где он взрывается… Хотя я согласен с данным ответом: я считаю, что то, что вы хотели бы извлечь с помощью Selenium, генерируется динамически, что затрудняет его получение с помощью небольшого селектора. Что-то, чего вы могли бы достичь, может быть выполнено с помощью чего-то вроде //*[@class=’Plain’]//*[2]/tbody/tr/td (хотя я не уверен, должно ли это быть [1] или [2])

Ответ №1:

это выглядит как динамически генерируемый идентификатор, что означает, что он отличается в каждом сеансе. Попробуйте запустить браузер без заголовка с вашим скриптом и проверьте, отличается ли идентификатор. Если это так, вам следует использовать другой локатор. Я мог бы помочь больше, если бы у меня был URL или хотя бы html, который вы хотите автоматизировать.

Комментарии:

1. thk очень ptzanis я прикрепил изображение, похожее на html… потому что я не могу скопировать HTML с исходной страницы….