Как получить доступ к определенному тексту в источнике веб-страницы с помощью селена python? - PullRequest
0 голосов
/ 13 июля 2020

Это исходный код HTML:


    <div class="dropdown-popup">
       <a href="/integrations/sources/" class="dropdown-item">Sources</a>
       <a href="/integrations/destinations/" class="dropdown-item">Destinations</a>
       <a href="/integrations/analysis-tools/" class="dropdown-item">Analysis</a>
    </div>

Я хочу получить доступ к Sources, Destinations, Analysis и сохранить его в list .

Как мне это сделать, используя selenium python?

Это то, что я получил до сих пор


    from selenium import webdriver
    
    browser = webdriver.Firefox()
    browser.get("http://example.com")
    
    tag_list = i.text.strip() for i in browser.find_elements_by_css_selector("div.dropdown-popup").find_elements_by_tag_name('a')
    print(tag_list)

Ошибка:

AttributeError: 'list' object has no attribute 'find_elements_by_tag_name'

1 Ответ

0 голосов
/ 13 июля 2020
In [41]: from selenium import webdriver
    ...:
    ...: driver = webdriver.Chrome("/Users/bigbounty/Downloads/chromedriver")
    ...: html_content = """
    ...: <html>
    ...:      <head></head>
    ...:      <body>
    ...:        <div class="dropdown-popup">
    ...:        <a href="/integrations/sources/" class="dropdown-item">Sources</a>
    ...:        <a href="/integrations/destinations/" class="dropdown-item">Destinations</a>
    ...:        <a href="/integrations/analysis-tools/" class="dropdown-item">Analysis</a>
    ...:     </div>
    ...:      </body>
    ...: </html>"""

In [42]: driver.get("data:text/html;charset=utf-8,{html_content}".format(html_content=html_content))

In [43]: driver.find_elements_by_css_selector("div.dropdown-popup")
Out[43]: [<selenium.webdriver.remote.webelement.WebElement (session="3dd84e3bc612314090a4105a1658c6fc", element="e92de33a-b219-45da-bc17-0fa06533cc06")>]

In [44]: tag_list = [i.text.strip() for i in driver.find_elements_by_css_selector("div.dropdown-popup")[0].find_elemen
    ...: ts_by_tag_name('a')]

In [45]: tag_list
Out[45]: ['Sources', 'Destinations', 'Analysis']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...