我是Appium的新手,但对Selenium很有经验。
第一个动作是,单击“ Nieuw”元素没有问题,出现带有四个选择的屏幕。
之后,我尝试单击具有辅助功能ID为“ Proefitmanager”的元素。在Appium桌面中,这没有问题,但是在我的Appium测试中,我遇到了NoSuchElement异常。我使用的是Appium桌面建议的Id,我的代码与Appium桌面的记录器生成的代码相当,尽管我使用的是C#而不是Java。
IWebElement nieuw = (IWebElement)driver.FindElementByXPath("(//android.view.View[@content-desc='Nieuw'])[2]");
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementToBeClickable(nieuw));
nieuw.Click();
IWebElement proefrit = (IWebElement)driver.FindElementByAccessibilityId("Proefrit");
wait.Until(ExpectedConditions.ElementToBeClickable(proefrit));
proefrit.Click();
我的想法是,元素在单击时没有焦点,因为它在另一个框架中。我尝试使用SwitchTo()。Frame(0)和Frame(1),但这有如下例外:
Could not proxy command to remote server. Original error: 404 - undefined`
从Appium桌面查看图像以了解应用程序的外观。
答案 0 :(得分:0)
以下是Java中的示例代码:
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextName); //prints out something like NATIVE_APP or WEBVIEW_1
}
driver.context(contextNames.toArray()[1]); // set context to WEBVIEW_1
以下是Java中的示例代码:
WebElement proefrit=driver.findElementByAccessibilityId("Proefrit");
wait.Until(ExpectedConditions.ElementToBeClickable(proefrit));
proefrit.click();
3。然后切换回本机上下文以继续测试。
driver.context("NATIVE_APP");