Селен с Python: нельзя выбрать внутри - PullRequest
0 голосов
/ 02 июня 2018

Я новичок в Python и Selenium и пытаюсь очистить страницу с данными о выборах (код https://historico.servel.cl/SitioHistorico/index2008_alca.htm, html на картинке ниже).На этой странице мне нужно перемещаться с помощью Selenium, поскольку при выборе элементов в меню URL не меняется.В качестве первого шага мне нужно выбрать кнопку «División Geografica» в верхнем левом углу.Я попытался перейти к соответствующему тегу, используя find_element_by_xpath().

Однако навигация по xpath работает только для тегов за пределами строк #document и <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">.Например, driver.find_element_by_xpath("/html/frameset[1]/frame") возвращает меня к первой странице прямо перед #document, но я не могу выбрать ни один из следующих тегов <body>, <form>' or.Я также попытался выбрать элементы, используя имя тега, например driver.find_element_by_name("DATOS"), но безуспешно.Это из-за тегов / строк `и / или '#document' или в чем здесь проблема?

Интересующий меня объект - <a href="geografico.htm" .... </a>.Есть ли у вас какие-либо предложения, как я могу выбрать его, используя xpath (или любой другой метод)?

Большое спасибо за вашу помощь!best, likeat.100

исходный код

1 Ответ

0 голосов
/ 02 июня 2018

Этот элемент <a href="geografico.htm" .... </a> находится в рамке .Вам нужно переключить фокус / управление вашего веб-драйвера, чтобы взаимодействовать с ним.

для переключения управления WebDriver вы можете использовать этот код:

driver.switch_to.frame(driver.find_element_by_name('guiaFrame'))  

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

Помните, что это всегда хорошая практика, если вы переключите фокус WebDriver на его родительский / стандартный режим, как только закончите с текущим кадром, для этого вы должны использовать:

driver.switch_to.default_content() 

HTH !!

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