私はWatir-webdriverを評価して、ブラウザーテスト(主にWatirから)に使用するように切り替えることができるかどうかを判断しています。重要なことの1つは、TinyMCEWYSIWYGエディターと対話する機能です。 TinyMCEを使用して作業します。私はなんとか次のソリューションを機能させることができました-
@browser = Watir::Browser.new(:firefox)
@browser.goto("http://tinymce.moxiecode.com/tryit/full.php")
autoit = WIN32OLE.new('AutoITX3.Control')
autoit.WinActivate('TinyMCE - TinyMCE - Full featured example')
@browser.frame(:index, 0).body.click
autoit.Send("^a") # CTRL + a to select all
autoit.Send("{DEL}")
autoit.Send("Some new text")
このアプローチの欠点は、autoitを使用することで、Windowsに依存し続け、クロスプラットフォームでテストを実行できることがWebドライバーの魅力の1つであるということです。
このスレッドから、次のようなWebドライバー固有のソリューションに気づきました。
String tinyMCEFrame = "TextEntryFrameName" // Replace as necessary
this.getDriver().switchTo().frame(tinyMCEFrame);
String entryText = "Testing entry\r\n";
this.getDriver().findElement(By.id("tinymce")).sendKeys(entryText);
//Replace ID as necessary
this.getDriver().switchTo().window(this.getDriver().getWindowHandle());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.getDriver().findElement(By.partialLinkText("Done")).click();
クロスプラットフォームで動作するように見えますが、Watir-webdriver内から同じ機能にアクセスできるかどうかはわかりません。私の質問は、watir-webdriverを使用してTinyMCEに書き込み、削除、送信する方法はありますか?これは、サポートされている特定のブラウザーまたはオペレーティングシステムへの依存を強制しませんか?