TabPanel を使用する GWT アプリケーションの WebDriver テストを作成しようとしています。タブのクリックは IDE で正常に動作します (x パスを使用してタブを検索します) が、JUnit テストではタブのクリックが機能しません。
すべての要素には、タブを含む debugID があり (ただし、タブ ID は IDE でも機能していないように見えます)、継承してcom.google.gwt.user.Debug
います。IDEのデフォルトであるXpathで見つけようとしました。
genericElement.findElement(By.xpath("//div[@id='gwt-debug-mainTabPanel']/div[2]/div/div[6]/div/div")
ドキュメントに記載されているコードを試しました
genericElement.findElement(By.id("gwt-debug-mainTabPanel-bar-tab6")
私もmoveToelement
(clickAt
サポートされなくなったため)クリックを試みましたが、それも失敗しました(誤解していない限り)。また、これは悪い習慣のように見えるため、これを避けたいと思います。
Actions builder = new Actions(driver);
genericElement = driver.findElement(By.id("gwt-debug-mainTabPanel"));
Action action = builder.moveToElement(genericElement,400, 370).click().build();
action.perform();
java.lang.UnsupportedOperationException: 任意の X、Y 座標への移動はサポートされていません。
GWT と Webdriver がうまくいっていないことはわかっていますが、これで解決できると思います。誰でも助けを提供できますか?GWT TabPanel のタブをクリックする動作する Webdriver テストを実装した人はいますか?
編集
Firebug と xpath ロケーターを使用してノードを見つけることができました (/.. を追加して親 gwt-TabLayoutPanelTabInner に移動するか、/../.. を追加して祖父母 gwt-TabLayoutPanelTabInner に移動すると、引き続き機能するはずです-それIDE で行います)
genericElement = driver.findElement(By.xpath("//div[contains(@class,'gwt-HTML') and contains(text(),'Users')]"));
ただし、クリックが必要なタブに変更されないわけではありません - 既知の問題のようです (moveToElement と click(genericElement) の両方を必要としない可能性があります - 試してみてください)
Actions builder = new Actions(driver);
builder.moveToElement(genericElement).click(genericElement).build().perform();
セクション3を参照してください....これは楽しいです:)