【问题标题】:Is it possible to read / write a web page loaded in MS Edge from a separate process是否可以从单独的进程读取/写入在 MS Edge 中加载的网页
【发布时间】:2018-02-08 02:11:36
【问题描述】:

我意识到这个问题并不完全符合 SO 的标准,但我希望有人能告诉我我在浪费时间或为我指明正确的方向。

我想知道是否有用于操作在 Edge 中加载的网页的低级 API。我正在开发一个自动化项目,该项目需要能够实时解析 DOM、注入元素、从单独的进程获取/设置输入值。

我无法在网上找到任何表明这是可能的信息,但我担心我什至可能没有找到正确的地方。

谢谢!

【问题讨论】:

  • 快速浏览一下,native messaging 可能。
  • 听起来像恶意软件......
  • @DavidHeffernan 具有讽刺意味的是,目标是以一种不会在“零知识”框架内向用户公开密码的方式自动进行身份验证。安全是动机,但我同意,这听起来很可疑 AF 哈哈。
  • 有一个程序假密码输入听起来像是你不小心将它输入纯文本窗口的可靠方法
  • 是的,如果您阅读了这个问题,我不是在询问有关安全性的提示,而是在询问有关询问接口的技术。这是对知识的追求。我们已经考虑了这一特殊问题,我们正在研究潜在的解决方案。

标签: winapi automation webbrowser-control microsoft-edge


【解决方案1】:

Shawn,看看 Microsoft Edge 的 Selenium WebDriver。它通常用作 QA 工具,但我看不出你为什么不能以这种方式做这些事情。

来自 W3C 的 WebDriver 定义

WebDriver 是一个远程控制界面,可以实现用户代理的自省和控制。它提供了一种平台和语言中立的有线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。 提供了一组接口来发现和操作 Web 文档中的 DOM 元素并控制用户代理的行为。它的主要目的是允许 Web 作者编写测试,从单独的控制过程中自动化用户代理,但也可以以允许浏览器内脚本控制(可能是单独的)浏览器的方式使用

我相信这代表了您想要做的大部分事情。这里有一些有用的链接可以帮助您入门。

这是从 MSFT Gist 中获取的一些示例 C# 代码

using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using System;

namespace EdgeDriverTests
{
    public class Program
    {
        /*
        * This assumes you have added MicrosoftWebDriver.exe to your System Path.
        * For help on adding an exe to your System Path, please see:
        * https://msdn.microsoft.com/en-us/library/office/ee537574(v=office.14).aspx
        */
        static void Main(string[] args)
        {
            /* You can find the latest version of Microsoft WebDriver here:
            * https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
            */
            var driver = new EdgeDriver();

            // Navigate to Bing
            driver.Url = "https://www.bing.com/";

            // Find the search box and query for webdriver
            var element = driver.FindElementById("sb_form_q");

            element.SendKeys("webdriver");
            element.SendKeys(Keys.Enter);

            Console.ReadLine();
            driver.Quit();
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多