これはうまく動作していたようですが、もう機能していないようです。おそらくそれを可能にするいくつかのトグルがありますか?このコードを使用してUIオートメーションを使用してエッジブラウザからテキストを取得する方法
private static async Task<string> getText(double x, double y)
{
try
{
var location = new System.Windows.Point(x, y);
AutomationElement element = AutomationElement.FromPoint(location);
object patternObj;
if (element.TryGetCurrentPattern(TextPattern.Pattern, out patternObj))
{
var textPattern = (TextPattern)patternObj;
var range = textPattern.RangeFromPoint(location);
range.ExpandToEnclosingUnit(TextUnit.Word);
var text = range.GetText(-1).Trim();
return text;
}
else
{
return "no text found";
}
}
catch (Exception ex)
{
return ex.Message;
}
}
それはたブラウザとメトロのアプリで作業を行います(あなたが速すぎてスクロールする場合のビットフレーク状が)。マニフェストについては、私はuiAccess = true、AsInvokerを使用しています。管理者として実行されても、それは役に立ちません。 同じことができるのであれば、WebDriverを使用するソリューションも許容されます。マイクロソフトのエッジを書いている時点で
どの時点では、コードが機能しなくなっていますか?たとえば、Textパターンはサポートされていないか、RangeFromPoint()は予期しない範囲を返します。)TextパターンをサポートするEdgeに要素が存在する必要があります。だから、おそらくFromPoint()はその要素を返さない。あなたはその要素のプロパティをチェックして、あなたが持っている要素を判断できますか? Textパターンをサポートする要素でない場合は、FromPoint()によって返される要素からTextパターン要素に移動できます。 –
私はそれが必要なのですが、ポイントが機能しない可能性があります。 – tofutim
あなたの質問は一般的なケースではうまくいきすぎるほど広すぎます。完全な復習ケースを提供してください。 –