6

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") 

私もmoveToelementclickAtサポートされなくなったため)クリックを試みましたが、それも失敗しました(誤解していない限り)。また、これは悪い習慣のように見えるため、これを避けたいと思います。

 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を参照してください....これは楽しいです:)

4

0 に答える 0