ページにリッチテキストエディタがあり、そこにテキストを入力する必要がありました。私は解決策を書きましたが、それは断続的にしか機能しないようです。これが私がすでに試したことです:
var iframe = _driver.SwitchTo().Frame(Driver.FindElement(By.XPath(xpath)));
var editor = iframe.FindElement(By.XPath("//*"));
for (var i = 1; _driver.FindElement(By.XPath("//*")).Text == String.Empty; i++)
{
switch (i)
{
case 1:
editor.SendKeys(text);
break;
case 2:
editor.SendKeys(Keys.Control + "a");
editor.SendKeys(Keys.Delete);
editor.SendKeys(text);
break;
case 3:
editor.Click();
editor.SendKeys(text);
break;
case 4:
throw new Exception("Rich Text Editor can't be reached");
}
editor.SendKeys(text);
ループでは、テキストが入力されているかどうかを確認します。そうでない場合は、別のケースを試してみます。さらに、editor.Clear();を実行しようとすると 「要素をクリアするには、要素をユーザーが編集できる必要があります」というエラーが永続的に発生します。(時々)タイプすることはできますが、(永久に)クリアすることはできません。それで、問題はこのコードをどのように安定させるかです。