我有一个典型的Web应用程序,它由Selenium WebDriver自动化。我的问题是自动化的一个特殊情况,其中有一个链接,该链接运行带有Java Web
Start的swing应用程序,并且我想将自动化的控制权转移到Swing应用程序。这可能吗?我可以使用什么工具来做到这一点?而且,我该怎么办?提前致谢。
可以通过使用以下库来完成:
您可能可以使用其他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将截取该窗口,因此它将不可见。对我来说这不是问题,所以我没有调查是否可以看到它。
问题内容: 我有一个典型的Web应用程序,它由Selenium WebDriver自动化。我的问题是自动化的一种特殊情况,其中有一个链接,该链接运行带有Java Web Start的swing应用程序,并且我想将自动化的控制权转移到Swing应用程序。这可能吗?我可以使用什么工具来做到这一点?而且,我该怎么办?提前致谢。 问题答案: 点击webdriver中的jnlp文件链接,将jnlp文件保存到
我在我的应用程序中启用了应用链接。它工作正常。但是在我的应用程序中,有一些情况下我无法处理传入的网址。在这种情况下,我想将该网址重定向到设备中的默认浏览器。 目前,我尝试使用intent打开带有url的浏览器,但它再次重定向到我的应用程序本身。应用程序链接的格式如下- 所以根据params,我想要么在应用程序本身中处理应用程序链接,要么将其重定向到默认浏览器。下面是我试图用上面的网址打开浏览器的代
演示网站:http://recipe-app.com/recipe/grilled-potato-salad演示应用:http://search-codelabs.appspot.com/codelabs/android-deep-linking 我的测试: 我已经从上面的链接安装了演示应用程序。我用谷歌搜索应用程序搜索了“烤土豆沙拉”,结果发现http://recipe-app.com/reci
我已经在我的设备上本地开发了一个android应用程序(应用程序还没有在android play商店上)。我有以下逻辑在主体活动中获得深度链接。 我用Firebase控制台建立了一些动态链接,并在手机浏览器中打开。但它不是打开我的应用程序并到达行字符串deepLink=appinvitereferral.getdeeplink(intent); 我在清单文件中有意图过滤器。
我正在寻找支持自动化Windows应用程序,如记事本使用Qmetum自动化框架与BDD步骤。我尝试与Appium驱动程序,但没有工作。 Step1:打开记事本Step2:输入“一些文本”[在这里输入链接描述][1] 成功日志:Windows应用程序驱动程序在以下位置侦听请求:http://127.0.0.1:4723/ 按ENTER键退出。 ============================
如果有人单击动态链接,我想在选择器应用程序中显示我的应用程序,我的android清单文件应该是什么?URL前缀类似于-https://testapp.page.link. 在这个阶段,如果有人点击链接,它会首先打开浏览器,然后重定向到我的应用程序。但我想在选择器应用程序列表中显示我的应用程序。此时,我的清单文件如下-