парсинг непосредственно на чистый источник HTML с селеном в Python - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь протестировать написанную мной программу селена, предоставив ей источник HTML в виде строки по некоторым причинам, таким как скорость. Я не хочу, чтобы он получал URL-адрес, и я не хочу, чтобы он открывал файл. Я просто хочу передать ему строку, содержащую всю DIV-часть этого сайта, и выполнить на ней анализ. это часть модуля, который я написал:

source = driver.page_source
return {'containers': source}

и в другом модуле

def get_rail_origin(self):
    return self.data['containers'].find_element_by_id('o_outDepName')...

Я пытаюсь разобраться с этим, но получаю

AttributeError: у объекта 'str' нет атрибута 'find_element_by_id'

Так, как я могу разобрать на чистом источнике HTML, не открывая файл или URL

1 Ответ

0 голосов
/ 03 ноября 2018

Selenium работает с live HTML DOM. Если вы хотите получить исходный код, а затем проанализировать его, вы можете, например, попробовать lxml.html:

def get_rail_origin(self):
    source = html.fromstring(self.data['containers'])
    return source.get_element_by_id('o_outDepName')

P.S. Я предположил, что self.data['containers'] является исходным кодом HTML

...