我们正在制作一个带有浏览器堆栈的自动化测试套件,以使我们在使用appium的硒中进行自动化测试。
对于此测试,我们需要播放受DRM保护的内容,尽管该功能适用于所有桌面平台,但是在测试android(和ios)时遇到了一些麻烦。 由于我们需要点击视频尝试加载时出现的弹出窗口的允许按钮。
我们一直试图单击此按钮,但没有成功。 我们尝试摆弄水龙头的座标,但似乎无法运作/注册。
我们注意到,上下文切换或单击都会导致设备进入主屏幕,因为这是我们在录制的视频中看到的。但是,屏幕截图显示了浏览器和内容,而没有转到主屏幕(弹出窗口也消失了,但是视频不起作用)
这是我们用来执行点击操作的代码:
androidDriver.context("NATIVE_APP");
int x = androidDriver.manage().window().getSize().width - 100;
int y = androidDriver.manage().window().getSize().height / 2 + 50;
new TouchAction<>(androidDriver).tap(PointOption.point(913, 1245)).perform();
androidDriver.context("CHROMIUM");
输入功能:
浏览器功能:
任何帮助将不胜感激,因为我们无法弄清楚如何使其发挥作用...
答案 0 :(得分:1)
由于要切换到本机上下文,因此可以找到允许按钮并单击它。根据您分享的详细信息和屏幕截图,以下代码片段应该可以解决问题:
//switch to native context
driver.context("NATIVE_APP");
//find element with text attribute ALLOW and click it
driver.findElement(By.xpath("//android.widget.Button[@text='ALLOW']")).click();
//switch back to chrome context
driver.context("CHROMIUM");
答案 1 :(得分:1)
您也可以在Android上使用此功能。这会自动允许所有android权限。
cap.setCapability("autoGrantPermissions", "true");
答案 2 :(得分:0)
@text='ALLOW'
不起作用,请尝试按如下所示的资源ID查找:
driver.findElement(By.xpath("//android.widget.Button[@resource-id='android:id/button1']")).click();