Cordova App,部署到Android模拟器。我的应用程序显示了一个通知提示,我想使用Appium进行测试。 我们正在使用通知插件,在这种情况下显示本机通知。我首先只想接受带有空字符串的提示。
我已经测试过,找到确定按钮:
var ok = browser.driver.findElement(by.name('Ok'));
ok.click();
错误是无法找到确定按钮。
我也尝试过:
var alert = browser.switchTo().alert();
alert.accept();
这会导致没有警报打开的错误。在这种情况下,appium登录:
info: JSONWP Proxy: Replacing sessionId 09700a539828795c9ea9d583b68b2250 with 483d2b53-eb0a-4ce2-a697-8776dadf6954
info: <-- GET /wd/hub/session/483d2b53-eb0a-4ce2-a697-8776dadf6954/alert_text 200 7.530 ms - 254
info: --> GET /wd/hub/session/483d2b53-eb0a-4ce2-a697-8776dadf6954/alert_text {}
info: JSONWP Proxy: Proxying [GET /wd/hub/session/483d2b53-eb0a-4ce2-a697-8776dadf6954/alert_text] to [GET http://127.0.0.1:9515/wd/hub/session/09700a539828795c9ea9d583b68b2250/alert_text] with body: {}
info: JSONWP Proxy: Got response with status 200: {"sessionId":"09700a539828795c9ea9d583b68b2250","status":27,"value":{"message":"no alert open\n (Session info: webview=39.0.0.0)\n (Driver info: chromedriver=2.20.353145 (343b531d31eeb933ec778dbc...
有相关帖子,但没有一个解决方案有效,例如: How to handle native iOS Alerts in Appium using Java how to handle alerts in android using appium
任何可以帮助我解释这个问题的人?
答案 0 :(得分:0)
我遇到了这个问题,最后想出了一个解决方案。
假设您正在使用wd-bridge,请首先通过量角器配置将wdBrowser
对象公开为测试中的全局:
onPrepare: function () {
var wd = require('wd'),
protractor = require('protractor'),
wdBridge = require('wd-bridge')(protractor, wd);
wdBridge.initFromProtractor(exports.config);
global.wdBrowser = wdBrowser;
},
然后假设您正在处理的Cordova警报由navigator.notification.alert()
由function acceptAlert() {
let webViewContext;
return wdBrowser
.currentContext()
.then((currentContext) => {
webViewContext = currentContext;
})
.context("NATIVE_APP")
.then(() => {
return wdBrowser.elementById("android:id/button1").then((el) => {
return el.click();
}, (err) => {
console.error("Alert dialog not found");
return wdBrowser;
});
})
.then(() => {
return wdBrowser.context(webViewContext);
});
};
生成,您可以执行以下操作:
acceptAlert().then(() => {
console.log("Alert accepted");
});
此功能:
所以你可以像这样使用它:
#count number of words in file
fp=open("hello1.txt","r+");
data=fp.read();
word_count=1;
for i in data:
if i==" ":
word_count=word_count+1;
# end if
# end for
print ("number of words are:", word_count);