Mah*_*dam 6 node.js appium appium-ios
我正在为使用WKWebviews显示一些数据的iOS应用程序创建自动化测试.用户在本机文本字段中键入查询,结果显示在webview中.问题是我在检查HTML中的某些预期结构时会出现不一致的行为.
这是我期待的HTML:
<div id="results">
<div class="frame">
<div class="card">
// here my data
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在Appium我检查这三个div存在的非常简单的情况如下:
it("should display results inside the web view", function () {
return driver
.waitForElementByName("Address and Search")
.sendKeys("search query")
.sleep(1000)
.contexts().then(function (contexts) { // get list of available views. Returns array: ["NATIVE_APP","WEBVIEW_1"]
return driver.context(contexts[1]); // choose the webview context
})
.waitForElementById("results", 60000)
.waitForElementByCss(".frame", 60000)
.waitForElementByCss(".card", 60000)
.sleep(3000)
});
Run Code Online (Sandbox Code Playgroud)
每次运行测试时我都得到不同的结果:有时它会找到所有元素,有时它只找到第一个元素(waitForElementById),然后无法获得任何其他元素.
这是我的配置:
exports.ios93 = {
browserName: '',
'appium-version': '1.4.13',
platformName: 'iOS',
platformVersion: '9.3',
deviceName: 'iPhone 6',
app: undefined // will be set later
};
Run Code Online (Sandbox Code Playgroud)
我尝试通过执行以下操作来解决问题:
切换到WEBVIEW如下后添加延迟:
.context('WEBVIEW_1')
.sleep(25000)
Run Code Online (Sandbox Code Playgroud)
更改窗口如下:
.context('WEBVIEW_1')
.windowHandles()
.then(function(handles) {
driver.window(handles[handles.length-1])
})
Run Code Online (Sandbox Code Playgroud)
但这没有任何效果.
请注意,Android版本的应用程序在测试时没有遇到所有这些问题Appium.
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |