小编Air*_*ega的帖子

WebDriver GWT TabPanel问题

我正在尝试为使用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")
Run Code Online (Sandbox Code Playgroud)

我已经尝试了文档中概述的代码

genericElement.findElement(By.id("gwt-debug-mainTabPanel-bar-tab6") 
Run Code Online (Sandbox Code Playgroud)

我也尝试了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();
Run Code Online (Sandbox Code Playgroud)

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')]"));
Run Code Online (Sandbox Code Playgroud)

然而,点击不会更改为所需的选项卡 - 似乎是一个已知问题(可能不需要moveToElement和click(genericElement) - hust给它一个镜头)

Actions builder = new Actions(driver);
builder.moveToElement(genericElement).click(genericElement).build().perform();
Run Code Online (Sandbox Code Playgroud)

见第3节 ....这很有趣:)

gwt junit selenium webdriver selenium-webdriver

6
推荐指数
0
解决办法
1072
查看次数

Go fmt float64问题

我在对 go fmt 包的菜鸟理解中遇到了一些问题

它涉及以下代码:

导入“fmt”

func main() {
    var smallFloat float64 = 0.123456789
    var bigFloat float64 = 123456789000

    fmt.Println(fmt.Sprintf("%f", smallFloat))
    fmt.Println(fmt.Sprintf("%f", bigFloat))
}
Run Code Online (Sandbox Code Playgroud)

输出是:

0.123457
123456789000.000000
Run Code Online (Sandbox Code Playgroud)

我不想使用科学记数法,所以认为 %f 适合我的需要。我可以从格式化页面(https://golang.org/pkg/fmt/)看到它说:

The default precision for %e and %f is 6; for %g it is the smallest number of digits necessary to identify the value uniquely.
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以使用 fmt 包来表示smallFloat 的完整十进制值,同时不在bigFloat 末尾附加6个零?

go gofmt

4
推荐指数
1
解决办法
7844
查看次数

Camel没有发布到RabbitMq队列

我在Camel的routeContext中定义了一个简单的Route(此Route将在多个路由中使用).

    <route id="sendToRabbitQueue">
        <from uri="direct:sendToQueue" />
        <convertBodyTo type="java.lang.String"/>
        <setHeader headerName="rabbitmq.ROUTING_KEY">
            <constant>my.routing.key</constant>
        </setHeader>
        <to uri="ref:genericRabbitEndpoint"/>
    </route>
Run Code Online (Sandbox Code Playgroud)

我有一个端点(在端点文件中定义)

    <endpoint id="genericRabbitEndpoint" uri="rabbitmq://${rabbitmq.host}:${rabbitmq.port}/${rabbitmq.exchange.name}">
        <camel:property key="autoDelete" value="false" />
        <camel:property key="connectionFactory" value="#rabbitConnectionFactory" />
    </endpoint>
Run Code Online (Sandbox Code Playgroud)

是的 - 我已经看到了http://camel.apache.org/rabbitmq.html页面 - 这就是我在交换机上设置标头的想法.但是没有消息在队列上发布.我显然忽略了一些东西,任何帮助都会受到赞赏.

java apache-camel rabbitmq

2
推荐指数
1
解决办法
959
查看次数