如何通过Selenium进入Microsoft Edge上的沉浸式阅读器?

mbzjlibv  于 2023-01-20  发布在  其他
关注(0)|答案(2)|浏览(212)

在一个高层次上,有没有人知道如何进入沉浸式阅读器模式时,微软边缘可用于一个给定的网页通过 selenium ?
我的目标是加载一个页面,进入沉浸式阅读器,并将页面的源代码保存到磁盘。我通过Docker启动Edge,并通过Node.js脚本实用地连接到它。
我试过driver.actions().sendKeys(KEY.F9),但它不起作用,因为我的目标是浏览器而不是DOM元素。
非常感谢你的帮助。

vdgimpew

vdgimpew1#

快跑

driver.get('read://' + url)

并且如果可用,则以沉浸式阅读器模式加载该站点。

旧的

要与UI交互,必须使用pyautogui(pip install pyautogui),然后在浏览器窗口处于焦点/活动状态时运行以下代码:

import pyautogui
pyautogui.press('F9')

例如,通过与按CTRL+S时出现的弹出窗口交互来保存pdf也很有用。

vaj7vani

vaj7vani2#

这里有一段代码,供其他可能会偶然发现这一点的人使用:
helping me的@声波学分到那里!

const { Builder } = require('selenium-webdriver');
const fs = require('fs');

(async () => {

    const driver = await new Builder().forBrowser('MicrosoftEdge').usingServer('http://localhost:4444').build();

    await driver.get('read://https://www.bbc.co.uk/news/entertainment-arts-64302120'); // this URL needs to be Immersive Reader supported

    await driver.switchTo().frame(0);
    const pagesource = await driver.getPageSource();

    fs.writeFile('test.html', pagesource, err => {
        if (err) {
            console.log(err);
        }
    });

    const title = (await driver.getTitle()).trim();
    console.log(title);

    await driver.quit();

})().catch((e) => console.error(e));

相关问题