java使一个链接可以打开_如何自动化一个swing java启动应用程序,该应用程序运行单击链接到Web应用程序,该应用程序是使用Selenium WebDriver自动执行的?...

>单击webdriver中的jnlp文件链接,将jnlp文件保存到磁盘;

>从jnlp运行webstart应用程序;

>捕获打开的应用程序并将其用于测试.

可以使用以下库来完成:

> netx(http://jnlp.sourceforge.net/netx/) – 用于从jnlp运行webstart应用程序

> uispec4j(http://www.uispec4j.org/) – 用于拦截创建的webstart窗口和操作窗口元素

您可以使用其他AWT / Swing测试工具执行相同的操作,但是uispec4j允许拦截从jnlp执行的webstart应用程序,您不需要通过调用main()来运行应用程序而您不需要使用您的webstart测试代码库中的应用程序源代码.我在与其他libs(包括Jemmy)实现这一点时遇到了问题.

这对我有用:

import java.io.File;

import javax.swing.JTextField;

import netx.jnlp.JNLPFile;

import netx.jnlp.Launcher;

import org.junit.Assert;

import org.junit.Test;

import org.uispec4j.Trigger;

import org.uispec4j.UISpecAdapter;

import org.uispec4j.UISpecTestCase;

import org.uispec4j.Window;

import org.uispec4j.interception.WindowInterceptor;

public class WebstartTest extends UISpecTestCase {

@Test

public void test() throws Exception {

// click your webdriver link, save the jnlp file to disk

final File file = new File("file.jnlp");

final JNLPFile jnlp = new JNLPFile(file.toURI().toURL());

// adapter is a UISpec4j way to allow capturing windows created in

// non-standard way, exactly what we need.

this.setAdapter(new UISpecAdapter() {

@Override

public Window getMainWindow() {

return WindowInterceptor.run(new Trigger() {

@Override

public void run() throws Exception {

// running jnlp by netx launcher

Launcher launcher = new Launcher();

launcher.setCreateAppContext(false);

launcher.launch(jnlp);

}

});

}

});

Window w = this.getMainWindow();

// verify if window's components are there

Assert.assertEquals("text", ((JTextField) w.getSwingComponents(JTextField.class)[0]).getText());

// manipulate window components...

}

}

注意:uispec4j将拦截窗口,因此它不会变得可见.这对我来说不是问题,所以我没有调查是否有可能让它可见.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值