我试图使用 ionic2/Angular2 和 typescript 来自动化混合应用程序构建。
我正在使用 C# 来编写代码。
测试在 BDD -specflow 中
版本:
iOS:9.3.1
代码:7.3
阿皮姆:1.4.13
将上下文切换到 WEBVIEW 后,我无法识别元素。
使用下面的代码调用 IOSDriver
private IOSDriver<IOSElement> driver = null;
public IOSDriver<IOSElement> GetDriver(string platformVersion, string deviceName, string udid ,string appPath, string serverUri)
{
Capabilities iosCapabilities = new Capabilities();
DesiredCapabilities capabilities = iosCapabilities.Get(platformVersion, deviceName, udid, appPath);
driver = new IOSDriver<IOSElement>(new Uri(serverUri), capabilities, TimeSpan.FromSeconds(Constants.DriverWaitTime));
driver.Manage ().Timeouts ().ImplicitlyWait (TimeSpan.FromSeconds(Constants.ImplicitWaitTime));
var contextNames = driver.Contexts;
driver.Context = contextNames[1];
driver.FindElement(By.Xpath(locator)).Click();
}
将功能设置为
private DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability ("appium-version", Constants.AppiumVersion);
capabilities.SetCapability ("platformName", Constants.PlatformName);
capabilities.SetCapability("autoWebView", "true");
capabilities.SetCapability("browserName", "iOS");
capabilities.SetCapability ("platformVersion", Constants.PlatformVersion);
capabilities.SetCapability("deviceName", deviceName);
capabilities.SetCapability("app", appPath);
capabilities.SetCapability("udid", udid);
我是否以正确的方式设置功能?
- Solution tried:
- 我检查了使用 browserName 功能作为空白/safari 但没有工作
- 另外,我安装了 ios-webkit-debug-proxy 并在 Mac 上使用后台终端启动代理
- 问题是我无法识别 WEBVIEW 中的元素。
我在做什么
启动应用程序后,在appium检查器中我能够
查看所有元素,我尝试单击文本框进行输入
一些价值
文本框的 Xpath(我可以在 appium 检查器窗口中查看):“//UIA应用程序1/UIA窗口1/UIScrollView2/UIAWebView1/UIA 文本字段1"
var contextNames = driver.Contexts
给我视图列表(在我的例子中,有 2 个视图:NATIVE_APP、WEBVIEW_1)
WebView 上下文从 1、2、3 等动态更新。
我一打电话
diver.Context=contextNames[1]; //setting context to WEBVIEW
并刷新 appium 检查器,我无法看到/识别单个元素。一切都会消失。
为什么我在切换到 webview 后无法看到/识别元素。 (注意:一旦我切换回 driver.Context="NATIVE_APP",每个元素都会在 appium 检查器中可见,但我仍然无法单击)
它显示错误为“使用给定的搜索参数无法找到元素”
当我尝试使用 appium 检查器手动点击或发送密钥时,它也不让我这样做(使用检查器按钮手动启动应用程序后)。这里有什么问题呢。非常感谢帮助
Appium检查器截图:
appium 窗口中显示的错误消息:
这是Appium的完整日志(错误)
无法识别WEBVIEW中的元素时Appium日志的链接