我意识到这个问题并不完全符合SO的标准,但我希望有人可以告诉我,我浪费时间或指向正确的方向。
我想知道是否存在用于操作Edge中加载的网页的低级API。我正在开发一个自动化项目,需要能够解析DOM,注入元素,实时从单独的进程获取/设置输入值。
我无法在网上找到任何表明这是可能的,但我担心我甚至可能找不到合适的地方。
谢谢!
答案 0 :(得分:1)
Shawn,看一下Selenium WebDriver for Microsoft Edge。它通常用作QA工具,但我认为没有理由不这样做。
来自WebDriver的W3C定义
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();
}
}
}