Соскреб в сети в Selenium в Python - поиск элементов через xpath или id возвращает пустой список - PullRequest
0 голосов
/ 05 декабря 2018

Поэтому я пытаюсь вычистить список адресов электронной почты со своей страницы User Explorer в Google Analytics.

, которая

Я получил x-путь по этой ссылке

X-путь элемента: //*[@id="ID-explorer-table-dataTable-key-0-0"]/div

Но как бы я ни делал:

driver.find_elements_by_xpath(`//*[@id="ID-explorer-table-dataTable-key-0-0"]/div`)

или

driver.find_elements_by_xpath('//*[@id="ID-reportContainer"]')

или

driver.find_elements_by_id(r"ID-explorer-table-dataTable-key-0-0")

возвращает пустой список.

Может кто-нибудь сказать мне, где я ошибся?

Я также пытался использовать:

html = driver.page_source

, ноконечно, я также не смог найти список электронных писем.

Я также думаю, если это не сработает, есть ли способ, которым я могу автоматизировать управление + a и скопировать весь отображаемый текст в строку вPython, а затем используйте re.findall(), чтобы найти адреса электронной почты?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Спасибо за помощь @Guy!

Это было что-то, связанное с iframe, и это сработало и обнаружило, к какому фрейму относится элемент, который мне нужен:

iframelist=driver.find_elements_by_tag_name('iframe')
for i in range(len(iframelist)):
    driver.switch_to.frame(iframelist[i])
    if len(driver.find_elements_by_xpath('//*[@id="ID-explorer-table-dataTable-key-0-0"]/div'))!=0:
        print('it is item {}'.format(i))
        break
    else:
        driver.switch_to.default_content()
0 голосов
/ 05 декабря 2018

email = driver.find_element_by_xpath (//*[@id="ID-explorer-table-dataTable-key-0-0"]/div)

print ("электронная почта", email.get_attribute ("innerHTML"))

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