是否可以从单独的进程读取/写入 MS Edge 中加载的网页
Is it possible to read / write a web page loaded in MS Edge from a separate process
我意识到这个问题不完全符合 SO 的标准,但我希望有人能告诉我我在浪费时间或指出正确的方向。
我想知道是否存在用于操纵 Edge 中加载的网页的低级别 API。我正在从事一个自动化项目,该项目需要能够实时解析 DOM、注入元素、从单独的进程中获取/设置输入值。
我无法在网上找到任何表明这是可能的东西,但我担心我什至可能没有在正确的地方寻找。
谢谢!
Shawn,看看 Microsoft Edge 的 Selenium WebDriver。它通常用作 QA 工具,但我看不出有什么理由不能用这种方式来做这些事情。
来自 W3C 对 WebDriver 的定义
WebDriver 是一个远程控制界面,可以对用户代理进行内省和控制。它提供了一种与平台和语言无关的有线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。
提供了一组接口来发现和操作 Web 文档中的 DOM 元素并控制用户代理的行为。它的主要目的是允许网络作者编写测试,使用户代理从一个单独的控制进程中自动化,但也可以以允许浏览器内脚本控制(可能是单独的)浏览器
我相信这代表了你想做的大部分事情。这里有一些有用的链接,可以帮助您入门。
这是从 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();
}
}
}
我意识到这个问题不完全符合 SO 的标准,但我希望有人能告诉我我在浪费时间或指出正确的方向。
我想知道是否存在用于操纵 Edge 中加载的网页的低级别 API。我正在从事一个自动化项目,该项目需要能够实时解析 DOM、注入元素、从单独的进程中获取/设置输入值。
我无法在网上找到任何表明这是可能的东西,但我担心我什至可能没有在正确的地方寻找。
谢谢!
Shawn,看看 Microsoft Edge 的 Selenium WebDriver。它通常用作 QA 工具,但我看不出有什么理由不能用这种方式来做这些事情。
来自 W3C 对 WebDriver 的定义
WebDriver 是一个远程控制界面,可以对用户代理进行内省和控制。它提供了一种与平台和语言无关的有线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。 提供了一组接口来发现和操作 Web 文档中的 DOM 元素并控制用户代理的行为。它的主要目的是允许网络作者编写测试,使用户代理从一个单独的控制进程中自动化,但也可以以允许浏览器内脚本控制(可能是单独的)浏览器
我相信这代表了你想做的大部分事情。这里有一些有用的链接,可以帮助您入门。
这是从 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();
}
}
}