在应用之间切换

时间:2016-02-07 11:41:24

标签: android selenium appium

我有一个场景,我需要使用Selenium和Appium切换应用程序。 我从浏览器开始,然后我需要从通知栏中获取一些信息,然后切换回浏览器。 我设法将每个过程作为一个独立的过程。但现在我正在努力做到端到端的过程。

我已经开始创建一个webdriver会话,但是当第一个会话仍在运行时我无法打开新会话。问题是浏览器和appium有不同的会话。一个是由

召集的
_driver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(180));

第二个是

_webdriver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(180));

2 个答案:

答案 0 :(得分:2)

我设法做了所需的事情。 我需要做的就是首先使用Chrome appActivity和appPackage运行AndroidDriver。

然后,使用driver.Context = NATIVE_APP;以使用Android的活动。 回到chrome也很容易。 driver.context = "WEBPAGE_1"; 此语法属于C#。

要了解您当前使用的上下文,请使用以下代码:

var Handledcontext=driver.Context.Tostring();
祝你好运,谢谢大家帮助我。

答案 1 :(得分:0)

首先使用远程webdriver在浏览器中执行测试,方法是将命令超时设置为大值。然后将sessionid保存在文件中..然后关闭进程而不退出浏览器.. 其次,使用appium驱动程序执行测试,然后退出 再次将您的第一个会话重新连接到您保存在文件中的sessionid ..

如果您使用节点客户端,那么它非常简单 获取sessionid:driver.getSessionId(); 附加到现有会话:driver.attach('your session id',function(err,capability){ });

如果您使用的是其他任何客户端语言,例如java或c# 然后,您必须覆盖selenium的execute方法以附加到现有会话