Я использую Windows UI Automation для настольных приложений. UI Automation, похоже, также может находить элементы в HTML элементов управления embedden WebBrowser, но я не смог найти способ присвоения этим элементам идентификатора автоматизации.
Я пробовал:
<button id="MyButton" >My Button</button>
<button data-automation-id="MyButton" >My Button</button>
<button AutomationProperties.AutomationID="MyButton" >My Button</button>
но никто из них не дал моей кнопке AutomationID (вторая и третья были дикими догадками).
Я идентифицирую элемент AutomationElement под курсором следующим образом:
public AutomationElement AutomationElementFromCursor()
{
var pt = Forms.Cursor.Position;
return AutomationElement.FromPoint( new Point( pt.X, pt.Y ) );
}
, который работаетХорошо, моя кнопка HTML идентифицируется, но без AutomationID. Конечно, я мог бы вместо этого использовать свойство «Имя», но это может нарушить мой код при каждом изменении текста кнопки.