我正在使用 Protractor + Jasmine + Selenium WebdriverJS 来自动化 angularjs 应用程序。我能够使用所有这些工具配置和设置示例脚本以在台式计算机上运行。
现在我想在移动(IOS & Android)设备/模拟器上运行相同的脚本。
我正在寻找使用 appium 在 IOS 和 Android 上运行量角器脚本。如果有人在量角器和appium上工作过。请帮我设置一个示例脚本。
我对所有这些工具都很陌生,任何关于此的信息都非常有帮助。
我正在使用 Protractor + Jasmine + Selenium WebdriverJS 来自动化 angularjs 应用程序。我能够使用所有这些工具配置和设置示例脚本以在台式计算机上运行。
现在我想在移动(IOS & Android)设备/模拟器上运行相同的脚本。
我正在寻找使用 appium 在 IOS 和 Android 上运行量角器脚本。如果有人在量角器和appium上工作过。请帮我设置一个示例脚本。
我对所有这些工具都很陌生,任何关于此的信息都非常有帮助。
在https://github.com/angular/protractor/blob/master/docs/browser-setup.md,您可以找到非常详细的信息,了解如何使用量角器设置 appium 以在模拟器上进行测试(Android/iOS)
你必须用appium webdriver替换protractor的webdriver。appium webdriver 在端口 4723 上正常运行。以下代码适用于 android,用于仅 web 的 angualr 应用程序(没有 apk,纯 web,在设备的 cromebrowser 中运行,必须存在)
exports.config = {
seleniumAddress: 'http://localhost:4723/wd/hub', //appium
specs: [
'spec.js'
],
capabilities: {
browserName: 'chrome',
'appium-version': '1.0',
platformName: 'Android',
platformVersion: '4.4.2',
deviceName: 'Android Emulator',
},
baseUrl: 'http://yourwebsite.com'),
};
启动 appium 并运行测试
protractor yourtest.js
编辑:使功能适应最新版本(selenium 2.43.x 必须存在浏览器名称)
您是否尝试过使用 SauceLabs?我认为您可以通过在配置的功能部分指定平台来请求 iOS 和 Android 设备。
如果您不想使用 SauceLabs,可以考虑使用 Selenium 的 Grid 功能。您可以获取适用于 iOS 和 Android 的 Selenium 驱动程序,并将它们连接到运行 Protractor 方案的集中式 Selenium 服务器,您只需更改配置文件中的 seleniumAddress 以指向集中式服务器。
基本上,您必须远程连接到设备,最简单的方法如上所述。
只是想分享一下这个配置对我来说对 BrowserStack 有效。-
multiCapabilities: [
{
platformName: 'iOS',
platformVersion: '7.1',
browserName: '',
app: 'safari',
deviceName: 'iPhone Simulator',
'appium-version': "1.4.0",
username: '<username>',
accessKey: '<key>'
}
,
{
platformName: 'Android',
platformVersion: '4.4',
browserName: 'Browser',
deviceName: 'Android Emulator',
'appium-version': "1.4.0",
username: '<username>',
accessKey: '<key>'
}
],
我发现与platformVersion
我放在这里的值不同的其他值不起作用,你会收到这样的错误消息:'Angular was not found....'
我为量角器团队创建了一张票并发表了评论: https ://github.com/angular/protractor/issues/2247