在应用程序之间切换
Switch between apps
我有一个场景,我需要使用 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));
首先,通过将命令超时设置为较大的值,使用远程 webdriver 在浏览器中执行测试。然后将 sessionid 保存在文件中。然后在不退出浏览器的情况下关闭进程。
其次,您使用 appium 驱动程序执行测试并退出它
再次使用您保存在文件中的会话 ID 重新连接您的第一个会话..
如果你用node客户端就很简单了
获取sessionid:driver.getSessionId();
附加到现有会话:driver.attach('your session id', function(err, capability){
});
如果您使用任何其他客户端语言,例如 java 或 c#
然后你必须覆盖 selenium 的执行方法以附加到现有会话
我设法做了需要做的事情。
我需要做的就是 运行 AndroidDriver 首先使用 Chrome appActivity 和 appPackage。
然后,使用 driver.Context = NATIVE_APP;
以使用 Android 的活动。
回到 chrome 也很容易。 driver.context = "WEBPAGE_1";
此语法属于 C#。
要了解您当前使用的上下文,请使用此代码:
var Handledcontext=driver.Context.Tostring();
祝你好运,感谢大家的帮助。
我有一个场景,我需要使用 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));
首先,通过将命令超时设置为较大的值,使用远程 webdriver 在浏览器中执行测试。然后将 sessionid 保存在文件中。然后在不退出浏览器的情况下关闭进程。 其次,您使用 appium 驱动程序执行测试并退出它 再次使用您保存在文件中的会话 ID 重新连接您的第一个会话..
如果你用node客户端就很简单了 获取sessionid:driver.getSessionId(); 附加到现有会话:driver.attach('your session id', function(err, capability){ });
如果您使用任何其他客户端语言,例如 java 或 c# 然后你必须覆盖 selenium 的执行方法以附加到现有会话
我设法做了需要做的事情。 我需要做的就是 运行 AndroidDriver 首先使用 Chrome appActivity 和 appPackage。
然后,使用 driver.Context = NATIVE_APP;
以使用 Android 的活动。
回到 chrome 也很容易。 driver.context = "WEBPAGE_1";
此语法属于 C#。
要了解您当前使用的上下文,请使用此代码:
var Handledcontext=driver.Context.Tostring();
祝你好运,感谢大家的帮助。