PFB守则:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.
capabilities.setCapability(CapabilityType.VERSION, "6.0");
capabilities.setCapability(CapabilityType.PLATFORM, "Android");
capabilities.setCapability("deviceName", <deviceID>);
capabilities.setCapability("locationServicesAuthorized", true);
capabilities.setCapability("appPackage",<Package Name for app under test >); //Replace with your app's package
capabilities.setCapability("appActivity",<Activity Name for app under test >); //Replace with app's Activity
driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);当被测试的应用第一次启动时,它会显示一个位置权限弹出。弹出元素的资源id是: com.android.packageinstaller:id/dialog_container ,它是被测试的应用程序包之外的。我们能够使用uiAutomatorViewer检测出App权限的元素。但是,我们无法使用相同的元素ids运行脚本,因为没有通过脚本检测到这些元素ids。
我们尝试使用以下代码:
**capabilities.setCapability("autoAcceptAlerts", true);**这不管用。
我们甚至尝试使用:driver.switchTo().alert().accept();,这也是不起作用的。
如有任何建议,将不胜感激。
发布于 2017-01-06 07:05:07
您可以使用此示例处理应用程序权限。这是从这个博客帖子。
import java.net.MalformedURLException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class WaitTests {
WebDriver driver;
@Before
public void setUp() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "XT1562");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability(CapabilityType.VERSION, "6.0.1");
capabilities.setCapability("platformName", "Android");
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
@Test
public void testFirst() {
alllowAppPermission();
driver.findElement(By.name("Login")).click();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
@After
public void End() {
driver.quit();
}
public void allowAppPermission(){
while (driver.findElements(MobileBy.xpath("//*[@class='android.widget.Button'][2]")).size()>0)
{ driver.findElement(MobileBy.xpath("//*[@class='android.widget.Button'][2]")).click();
}
}
}https://stackoverflow.com/questions/38977669
复制相似问题