0

我试图找到一个 ID 为:“header-toolbar-screenshot”的元素。如示例屏幕截图所示:

在此处输入图像描述

当我执行这个脚本时:

from requests_html import AsyncHTMLSession
asession =  AsyncHTMLSession()
url='https://www.tradingview.com/chart/?symbol=BTCUSDT&interval=4H'

async def get_element():
    r = await asession.get(url)
    script = """
        () => {
            button = document.querySelector('#header-toolbar-screenshot');
            return button
        }
        """
    button = await r.html.arender(script = script, sleep = 5)

asession.run(get_link)

未找到任何元素。

在浏览器控制台中执行此命令document.querySelector('#header-toolbar-screenshot')时,结果如下:

在此处输入图像描述

如果我尝试使用 r.html.find 函数找到它:

from requests_html import AsyncHTMLSession
asession =  AsyncHTMLSession()
url='https://www.tradingview.com/chart/?symbol=BTCUSDT&interval=4H'

async def get_element():
    r = await asession.get(url)
    await r.html.arender(sleep = 5)
    button = r.html.find('#header-toolbar-screenshot')

asession.run(get_link)

我得到一个结果:

[<Element 'div' id='header-toolbar-screenshot' data-role='button' class=('iconButton-pzOKvpP8', 'button-2Vpz_LXc', 'apply-common-tooltip') title='拿一个快照'>]

我需要用 javascript 找到这个元素,因为当找到该元素时我想点击它..

document.querySelector('#header-toolbar-screenshot')`.click()

我知道还有另一个像 selenium 这样的程序,但是 selenium 需要更多资源并且比这种方法慢。

4

0 回答 0