Selenium Appium:如何在移动应用中从本机应用切换到移动Web浏览器,并在移动浏览器上运行URL

Selenium Appium:如何在移动应用中从本机应用切换到移动Web浏览器,并在移动浏览器上运行URL,selenium,appium,appium-android,appium-ios,Selenium,Appium,Appium Android,Appium Ios,我有一个本地移动应用程序,通过使用正常工作的Appium驱动程序AppiumDriver驱动程序和应用程序的一个功能(例如解锁帐户)向用户发送需要用户确认的电子邮件来实现自动化 因此,我了解了如何在电子邮件中获取链接,以及如何从send Email获取URL。保存在字符串var中,例如href 因此,当自动运行时,我在手机应用程序的窗口信息,通知用户我们已发送电子邮件确认。 现在我的问题是 我如何从本机移动应用程序屏幕信息切换到浏览器中并将URL放入浏览器中,然后在浏览器中打开一个窗口,要求用户

我有一个本地移动应用程序,通过使用正常工作的Appium驱动程序AppiumDriver驱动程序和应用程序的一个功能(例如解锁帐户)向用户发送需要用户确认的电子邮件来实现自动化

因此,我了解了如何在电子邮件中获取链接,以及如何从send Email获取URL。保存在字符串var中,例如href

因此,当自动运行时,我在手机应用程序的窗口信息,通知用户我们已发送电子邮件确认。 现在我的问题是

我如何从本机移动应用程序屏幕信息切换到浏览器中并将URL放入浏览器中,然后在浏览器中打开一个窗口,要求用户输入新密码并重复,然后按OK? 之后,我应该再次回到移动应用程序

除了上面提到的appium驱动程序之外,我是否还需要另一个驱动程序(如Web驱动程序)来处理切换后浏览器中的操作

谢谢你的支持

这是我的能力:

public AppiumDriver<MobileElement> driver;

您可以使用类启动另一个应用程序,使用以下函数:

Activity activity = new Activity("activity.package", "activity.name");
activity.setStopApp(false);
((AndroidDriver<MobileElement>) driver).startActivity(activity);    

我认为这将通过以下方式实现:

driver.startActivity(new Activity("com.example", "ActivityName"));
进口人:

import io.appium.java_client.android.Activity;
使用此方法,您可以切换应用程序,您必须了解您拥有的应用程序包和应用程序活动,尝试或了解此方法

这是来自play store的APP_软件包和APP_活动google chrome浏览器的示例:

driver.startActivity(new Activity("com.android.chrome", "com.google.android.apps.chrome.Main"));
您不需要为浏览器创建新的初始化驱动程序,只需这样做即可

Your native apps start here
...

Switch to browser

//example chrome
driver.startActivity(new Activity("com.android.chrome", "com.google.android.apps.chrome.Main"));
....

//back to last activity your native app
driver.startActivity(new Activity("yourAPP_PACKAGE", "yourAPP_ACTIVITY"));
driver.startActivity(new Activity("com.example", "ActivityName"));
import io.appium.java_client.android.Activity;
driver.startActivity(new Activity("com.android.chrome", "com.google.android.apps.chrome.Main"));
Your native apps start here
...

Switch to browser

//example chrome
driver.startActivity(new Activity("com.android.chrome", "com.google.android.apps.chrome.Main"));
....

//back to last activity your native app
driver.startActivity(new Activity("yourAPP_PACKAGE", "yourAPP_ACTIVITY"));