Я новичок в задачах селена и автоматизации веб, и я пытаюсь написать приложение для автоматизации поиска документов в PubMed с помощью chromedriver.
Моя цель - нажать в правом верхнем углу кнопку «Войти» на главной странице PubMed https://www.ncbi.nlm.nih.gov/pubmed. Таким образом, проблема заключается в следующем:
, когда я открываю главную страницу PubMed вручную, в источнике html нет тегов iframes, и поэтому элемент «Вход» должен быть просто доступен его xpath "//*[@id="sign_in"]"
.
, когда взамен этой же страницы открывается селен, я не могу найти этот элемент "Вход в систему" по его xpath, и если попытаться проверить его, то * Источник 1032 *, кажется, встроил его в тег <iframe>
, так что его больше нельзя найти, пока не будет выполнен метод driver._switch_to.frame
. Но если я открою исходный код html по Ctrl+U
и поищу элемент <iframe>
, их все равно не будет. Вот контрольный снимок элемента «Войти»:
["Sign in" inspection][1]
Я уже обошел эту проблему:
bot = PubMedBot()
bot.driver.get('https://www.ncbi.nlm.nih.gov/pubmed')
sleep(2)
frames = bot.driver.find_elements_by_tag_name('iframe')
bot.driver._switch_to.frame(frames[0])
btn = bot.driver.find_element_by_xpath('/html/body/a')
btn.click()
Но все, что я хотел бы понять Вот почему проверочный код отличается от исходного кода html, действительно ли этот элемент <iframe>
появился из ниоткуда, и если да, то почему.
Заранее спасибо.