- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以前我使用 ShellWindows() API for IE 来获取我的应用程序的窗口标题和 URL
现在随着新的发展,Microsoft Edge 是新的,并且有许多正在开发的功能。
我想知道如何获取在 MS-Edge 中打开的所有页面的 URL 和标题。
由于没有任何 shell API 与 MS-Edge 一起使用。
我也尝试过 UI 自动化,但它没有返回所有的 UI 元素
我正在使用 MS Visual Studio 2010 进行开发。我需要新版本的 Visual Studio 吗?
有人可以帮助我了解如何访问标题和 URL 吗?
或者由于安全原因,MS-Edge 是否不允许这样的访问?
谢谢
最佳答案
我不熟悉此处通过 Shell API 可能实现的功能,但我刚刚尝试使用 UIA 进行测试。我写了下面的代码来访问标题、网址和窗口句柄,它似乎工作正常。当 Edge 显示几个选项卡时,我运行了代码,显示的页面是 Bing.com。这是测试发现的数据...
C# 代码使用我通过 tlbimp 工具生成的 UIA 互操作 dll。
测试代码做出了一些可能需要加强的假设,但总的来说,它看起来可以获得您需要的数据。如果您发现此代码对您不起作用,如果您让我确切知道涉及哪些元素,我可以调查一下。
谢谢,
盖伊
IUIAutomationElement rootElement = uiAutomation.GetRootElement();
int propertyName = 30005; // UIA_NamePropertyId
int propertyAutomationId = 30011; // UIA_AutomationIdPropertyId
int propertyClassName = 30012; // UIA_ClassNamePropertyId
int propertyNativeWindowHandle = 30020; // UIA_NativeWindowHandlePropertyId
// Get the main Edge element, which is a direct child of the UIA root element.
// For this test, assume that the Edge element is the only element with an
// AutomationId of "TitleBar".
string edgeAutomationId = "TitleBar";
IUIAutomationCondition condition =
uiAutomation.CreatePropertyCondition(
propertyAutomationId, edgeAutomationId);
// Have the window handle cached when we find the main Edge element.
IUIAutomationCacheRequest cacheRequestNativeWindowHandle = uiAutomation.CreateCacheRequest();
cacheRequestNativeWindowHandle.AddProperty(propertyNativeWindowHandle);
IUIAutomationElement edgeElement =
rootElement.FindFirstBuildCache(
TreeScope.TreeScope_Children,
condition,
cacheRequestNativeWindowHandle);
if (edgeElement != null)
{
IntPtr edgeWindowHandle = edgeElement.CachedNativeWindowHandle;
// Next find the element whose name is the url of the loaded page. And have
// the name of the element related to the url cached when we find the element.
IUIAutomationCacheRequest cacheRequest =
uiAutomation.CreateCacheRequest();
cacheRequest.AddProperty(propertyName);
// For this test, assume that the element with the url is the first descendant element
// with a ClassName of "Internet Explorer_Server".
string urlElementClassName = "Internet Explorer_Server";
IUIAutomationCondition conditionUrl =
uiAutomation.CreatePropertyCondition(
propertyClassName,
urlElementClassName);
IUIAutomationElement urlElement =
edgeElement.FindFirstBuildCache(
TreeScope.TreeScope_Descendants,
conditionUrl,
cacheRequest);
string url = urlElement.CachedName;
// Next find the title of the loaded page. First find the list of
// tabs shown at the top of Edge.
string tabsListAutomationId = "TabsList";
IUIAutomationCondition conditionTabsList =
uiAutomation.CreatePropertyCondition(
propertyAutomationId, tabsListAutomationId);
IUIAutomationElement tabsListElement =
edgeElement.FindFirst(
TreeScope.TreeScope_Descendants,
conditionTabsList);
// Find which of those tabs is selected. (It should be possible to
// cache the Selection pattern with the above call, and that would
// avoid one cross-process call here.)
int selectionPatternId = 10001; // UIA_SelectionPatternId
IUIAutomationSelectionPattern selectionPattern =
tabsListElement.GetCurrentPattern(selectionPatternId);
// For this test, assume there's always one selected item in the list.
IUIAutomationElementArray elementArray = selectionPattern.GetCurrentSelection();
string title = elementArray.GetElement(0).CurrentName;
// Now show the title, url and window handle.
MessageBox.Show(
"Page title: " + title +
"\r\nURL: " + url +
"\r\nhwnd: " + edgeWindowHandle);
}
关于.net - Microsoft Edge : Get Window URL and Title,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967430/
有什么方法可以覆盖无法直接编辑的页面标题,只能在页眉中添加 Javascript? 我不能直接编辑的行是: Title of the page 我能想到的解决这个问题的唯一方法是在我可以通过我的门户后
这是我的基础文件 {% load static %} {% include "feed/header.html" %} {% block content%} {% endblock %} {% inc
请说明 之间有什么区别标记和 标签。 Page title 如果两者都使用,哪个最优先? 我观察到一些网站同时具有 和 tags 和 两者相同,这是预期的,请确认? 如果我们不使用 标签标题,我
我有一个带有唯一title的表_primary,并且我有一个需要设置引用title的表_secondary > 对于 _primary 表。 最佳答案 尝试这个解决方案并让我知道它对您有用。 ALTE
我正在尝试学习使用 PDO 而不是 MySQLi 进行数据库访问,但我在从数据库中选择数据时遇到了问题。我想使用: $STH = $DBH->query('SELECT * FROM ratings
我了解 title 和 alt 属性的用途,但我只是不了解它们的最佳用途,或者我是否可以使用相同的 title /alt 不止一次。 例如,以一个关于狗的网站为例: 根据我的理解,所有 img 标签都
我分配了一个带有标题 (initWithTitle) 的 UITabBarItem 并将其连接到 UINavigationController。 我发现,如果导航 Controller 的 Root
我有标签栏和导航栏。在导航栏中我有表格 View 。问题是,当我在 IB 中将标题设置为选项卡栏,然后在 TableView 中设置标题时,选项卡栏标题将更改为 TableView 中的标题,并且我在
在我的 JSP 页面中,我使用 显示页面标题,有时可以,但有时页面显示无法cpmplie代码 。所以我将代码更改为 ${TITLE} ,也可以。 有什么不同和${TITLE}在jsp中? 这是我的页
我目前正在向 Jade 和 node.js 介绍自己 由于我想避免冗余,我想到将域名附加到当前标题,例如Blog | example.com 我的 Jade 模板得到了 Blog通过 Node.js
//Sorting userDefined object from ArrayList<>... import java.io.*; import java.util.*; class Song
我的网站有这两个元标记,它们目前具有相同的值: 第二个是 facebook 连接所需的格式。 这是否意味着第一个是多余的并且可以删除? 最佳答案 最好同时存在这两个标签。该标签告诉搜索引擎有
我现在对 ASP.NET MVC 的 Razor ViewEngine 感到困惑。 大多数人会说: View.Title 与相同 ViewData["Title"] 运行应用程序后我得到了这个 Com
UIViewController 的 title 属性的用途是什么,不能用 navigationItem.title 设置标题吗? 两者似乎都有效,我只是想知道为什么会有这种看似重复的功能。 最佳答案
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我正在尝试编写一个从URL提取的正则表达式,但是问题是“。”与我们已经知道的不匹配换行符。如何编写正则表达式以匹配和提取pageTitle(。*?),但换行符可能介于 我在用grails。 最佳答案
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我正在 github 上创建一个库,所以我为此使用了一个 Markdown 文件,其结构如下: # My main title ## My first section ... ## My second
我在某些地方看到,为了从 props 中获取 title 的值,我们使用 {`${props.title} `} 而在其他一些地方,我们使用它 {props.title} 有什么区别? 最佳答案 第一
我想使用 IMG 标签的 TITLE 属性,为图像创建标题: HTML CSS img[title]:after{content:attr(title);} 但是无论是在 IE、Firefox 还是
我是一名优秀的程序员,十分优秀!