gpt4 book ai didi

gwt - GWT 2.0 的 Selenium 测试

转载 作者:行者123 更新时间:2023-12-04 02:11:11 24 4
gpt4 key购买 nike

如何使 selenium click() 与手动鼠标单击一样工作?

我最近将 GWT 从 1.7.1 升级到 2.0。一些 Selenium 测试(SeleniumRC v1.0.1、IE7)现在失败了。似乎 Selenium.click() 方法没有选择 GWT TreeItem。手动单击将使 TreeItem 变为蓝色(即看起来被选中并在 DOM 中具有“gwt-TreeItem-selected”类属性),但 selenium 测试不会。

我确信 Selenium 实际上是在寻找正确的元素,只是没有点击它。如果您更改 click 方法中的字符串参数,您可以检查 selenium 在未找到元素时是否抛出异常。

下面的示例代码使用 GWT Showcase 网站。它试图点击“贝多芬”这个词。如果您用鼠标单击该词,您将看到 TreeItem 变为蓝色。但是,当您运行 selenium 测试时,它不会。

package test;

import org.junit.Before;
import org.junit.Test;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;

public class TestTreeClick {
static Selenium selenium = null;

@Before
public void setUp() throws Exception {
if (selenium == null) {
selenium = new DefaultSelenium("localhost", 4444, "*iexplore",
"http://gwt.google.com/samples/Showcase/Showcase.html#CwTree");
selenium.start();
}
}

@Test
public void testingClicking() {
selenium.open("http://gwt.google.com/samples/Showcase/Showcase.html#CwTree");
selenium.click("gwt-debug-cwTree-staticTree-root-child0-content");
}
}

我尝试了一些其他方法(Selenium.clickAt()、Selenium.fireEvent()、Selenium.mouseOver()/Down()/Up()) - 但没有重现手动行为。

最佳答案

不幸的是,看看这个案例,我无法用 Selenium 复制点击。我看到很多人提示他们不能将 Selenium 与 GWT 一起使用,而其中一个最著名的团队也有这个问题。 Google Wave 开发团队已经开始使用 WebDriver 来测试他们的代码。

现在好消息是,目前有一个项目将 Selenium 和 WebDriver 合并,因为它们各有优缺点,而且其中一些在不同的领域,因此最终产品将是惊人的。

我相信他们可能在 Google Code 上有 WebDriverBackedSelenium 的工作版本。所以你需要做的就是更新 Selenium 的实例,它应该开始使用 WebDriver 代码来运行你的测试。

关于gwt - GWT 2.0 的 Selenium 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com