WebDriver GWT TabPanel问题

时间:2012-09-06 16:44:17

标签: gwt selenium junit webdriver selenium-webdriver

我正在尝试为使用TabPanel的GWT应用程序创建WebDriver测试。单击选项卡在IDE中工作正常(它使用x-path查找选项卡)但是我无法在JUnit测试中单击选项卡。

所有元素都有一个包含选项卡的debugID(虽然标签ID似乎在IDE中似乎不起作用)并且我继承了com.google.gwt.user.Debug。我试图通过Xpath定位,这是IDE的默认设置。

genericElement.findElement(By.xpath("//div[@id='gwt-debug-mainTabPanel']/div[2]/div/div[6]/div/div")

我已尝试过the documentation

中列出的代码
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的相处并不好 - 但我觉得这会有一个解决方案。任何人都可以提供任何帮助 - 有没有人实现了一个有效的Webdriver测试,他们点击了GWT TabPanel中的一个标签?

修改

我设法使用Firebug和xpath定位器定位节点(你可以添加/..to移动到父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();

See section 3 ....这很有趣:)

0 个答案:

没有答案