栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何自动化Swing Java Web Start应用程序,该应用程序运行单击Web应用程序中的链接的操作,该链接由SeleniumWebDriver自动化?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何自动化Swing Java Web Start应用程序,该应用程序运行单击Web应用程序中的链接的操作,该链接由SeleniumWebDriver自动化?

  1. 点击webdriver中的jnlp文件链接,将jnlp文件保存到磁盘;
  2. 从jnlp运行webstart应用;
  3. 捕获打开的应用程序并将其用于测试。

可以通过使用以下库来完成:

  • netx(http://jnlp.sourceforge.net/netx/)-用于从jnlp运行Webstart应用程序
  • uispec4j(http://www.uispec4j.org/)-用于拦截创建的Webstart窗口和操作窗口元素

您可能可以使用其他AWT /
Swing测试工具完成相同的技巧,但是uispec4j允许拦截从jnlp执行的webstart应用程序,您不需要通过调用main()来运行该应用程序,也不需要拥有webstart测试代码存储库中的应用源代码。我在与其他库(包括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将截取该窗口,因此它将不可见。对我来说这不是问题,所以我没有调查是否可以看到它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号