我有一个角度应用程序,用于$routeProvider将不同的部分加载到ng-view.
因此,在我的e2e场景中,当我打电话时browser().navigateTo('/'),我还需要调用sleep(0.5)或等待元素实际出现.
不幸的是,电话sleep完全打破了测试!突然之间,框架的行为似乎根本看不到页面,并且永远找不到元素.
我的e2e测试中我不必等待加载任何东西,可以找到我期望的所有元素,但是如果我在那些测试中进行睡眠调用,那么它们也会中断.
有没有人建议看什么?有些方法可以增加控制台的冗长程度?将测试仪重新聚焦的一些方法?
附加信息:
我想为使用ng-grid的页面编写量角器测试.我没有看到有关如何做到这一点的任何文档.在我的页面上,我看到一个包含数据的网格,html看起来像这样:
<div class="gridStyle"
ng-grid="tenantsGridOptions"
ng-if="tenantsGridOptions != undefined" >
</div>
Run Code Online (Sandbox Code Playgroud)
如何从量角器中找到此网格上的元素?
有没有人知道是否有可以添加到量角器的配置,e2e.conf.js所以它一旦失败就退出测试?默认行为是,如果测试在早期失败,则需要等到它完成以修复错误.
从工作流的角度来看,这非常令人沮丧.
解决这个问题的任何方法?
谢谢
我正在使用Protractor为角网站编写端到端测试.
我们必须支持某些语言,所以我想使用--lang标志初始化chrome并使用其他语言启动它.我在网上搜索过,找不到任何可以做到的例子.
我唯一的领导是我看到的一些文章并且理解我需要在Protractor配置文件中添加"功能"部分,在那里我可以定义"args"属性.
然后试着修补它但没有运气.
我们非常欢迎任何帮助.
谢谢,
阿龙
我在尝试点击量角器测试中的隐藏元素时遇到问题.
下面是返回的错误消息,以及导致错误消息的代码段.任何关于为什么抛出这个错误的想法都将非常感激.
RangeError: Maximum call stack size exceeded
browser.driver.executeScript("return arguments[0].click()", bank_page.boaClick);
Run Code Online (Sandbox Code Playgroud)
并且"bank_page.boaClick()"被引用为页面Object上的变量,其片段如下所示:
boaClick: { get: function () { return element.all(by.model('bankConnection.bank')).get(0); }},
Run Code Online (Sandbox Code Playgroud)
以下是我试图用该变量引用的片段:
<input type="radio" ng-model="bankConnection.bank" ng-value="bank" class="ng-valid ng-dirty" name="00D" value="[object Object]">
Run Code Online (Sandbox Code Playgroud)
我基本上只是想能够点击这个单选按钮,但是按钮是一个隐藏的元素,所以在线搜索后,第一个"browser.driver.executeScript"调用似乎是实现这一目标的最佳选择,但我得到了RangeError回来了,因为我已经实现了它.
我可以使用Protractor + Appium在桌面,移动设备上运行自动化测试.但是,运行自定义测试时遇到问题,仅适用于桌面/移动设备.
例如:我的一个测试验证面包屑,它只显示在桌面屏幕分辨率中.
如果有解决方案可以检查是否在桌面或移动设备中执行测试,请指教.
eg; it('check breadcrumb in website', function(){
if(isDesktop()){
contentItemPage.checkBreadCrumb();
}
});
Run Code Online (Sandbox Code Playgroud)
与以下内容类似,检查浏览器是否为Chrome.
function isChromeBrowser(){
browser.getProcessedConfig().then(function(config) {
if(config.capabilities.browserName.valueOf() === new String('chrome').valueOf()){
return true;
}
return false;
});
} Run Code Online (Sandbox Code Playgroud)
提前致谢.
javascript screen-resolution appium angularjs-e2e protractor
我使用CucumberJs和Gulp来运行我的e2e测试; 但是,我需要针对Microsoft Edge运行它们.当我这样做时gulp protractor,它成功打开了Chrome和Firefox,因为它们都不需要像IEDriver.exe或那样的驱动程序EdgeDriver.exe.
如果有关如何使用Microsoft Edge设置Protractor的简单方法,是否有人可以指向我的文章或显示以下步骤?
我试图通过在多个浏览器上执行测试来实现并行性; 这是我的配置看起来像:
exports.config = {
framework: 'cucumber',
shardTestFiles: true,
maxInstances: 2,
multiCapabilities: [
{
'browserName': 'MicrosoftEdge',
'platform': 'windows',
}
},
{
'browserName': 'firefox',
loggingPrefs: {
driver: 'DEBUG',
server: 'INFO',
browser: 'ALL'
}
}],
//more configs here
}
Run Code Online (Sandbox Code Playgroud)
我在上面实现了配置,使用这篇文章并行运行量角器e2e测试:http://blog.yodersolutions.com/run-protractor-tests-in-parallel/
IE driver如果您不知道如何设置Edge ,那么也可以使用其中一个.
更新:
从这个链接:https://msdn.microsoft.com/en-us/library/mt188085(v = vs.85).aspx ; 在下面
使用Microsoft Edge启用WebDriver:
下载您选择的WebDriver语言绑定.目前支持C#和Java Selenium语言绑定.
我没有使用Java或C#,我只使用Javascript(Protractor) ; 这是否意味着Javascript currenlty的语言绑定不适用于Edge浏览器?
换句话说,我们目前无法使用Protractor(Javascript)自动化Edge浏览器?
任何帮助非常感谢,如果我发现有关设置Protractor with …
我在很多这样的例子中看到过$('.selector'),我也在使用它.那么这个$变量做了什么.这是我从量角器文档中得到的.
可以将对$的调用链接起来查找父项中的元素.
文档中没有$单独使用的示例.我们使用$到链element选择.
另外$('.selector')本身就是一个元素,我们做到这一点的时候element($('.selector')),这是一个错误.
那么如何$在量角器中使用这个选择器.它具有的所有功能吗JQuery $?我试过$('.selector').children说哪个children不是功能.
任何帮助是极大的赞赏.
谢谢!
最近我的Chrome浏览器更新到了Version 57.0.2987.133 (64-bit).因此,我现有的量角器测试不适用于当前版本的chrome.错误消息是
失败:未知错误:无法使用'in'运算符在false中搜索'String'(会话信息:chrome = 58.0.3029.96)(驱动程序信息:chromedriver = 2.29.461591(62ebf098771772160f391d75e589dc567915b233),platform = Windows NT 6.3.9600 x86_64 )(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:18毫秒构建信息:版本:'3.4.0',修订版:'未知',时间:'未知'系统信息:主机:'WIN- DA72NJNI5DP',ip:'172.16.230.61',os.name:'Windows Server 2012 R2',os.arch:'amd64',os.version:'6.3',java.version:'1.8.0_131'驱动程序信息: org.openqa.selenium.chrome.ChromeDriver Capabilities [{applicationCacheEnabled = false,rotating = false,mobileEmulationEnabled = false,networkConnectionEnabled = false,chrome = {chromedriverVersion = 2.29.461591(62ebf098771772160f391d75e589dc567915b233),userDataDir = C:\ Users\ADMINI~1\AppData\Local\Temp\scoped_dir7512_11086},takeHeapSnapshot = true,pageLoadStrategy = normal,databaseEnabled = false,handlesAlerts = true,hasTo uchScreen = false,version = 58.0.3029.96,platform = WIN8_1,browserConnectionEnabled = false,nativeEvents = true,acceptSslCerts = true,locationContextEnabled = true,webStorageEnabled = true,browserName = chrome,takesScreenshot = true,javascriptEnabled = true,cssSelectorsEnabled = true, unexpectedAlertBehaviour =}]
即使我已将我的Chrome驱动程序版本更新为2.28然后再更新2.29.但它不起作用.以下是有关我当前测试环境的更多信息:
javascript selenium-chromedriver angularjs angularjs-e2e protractor
我量角器测试有问题。它正在工作,但是现在(甚至认为没有任何变化)它没有。测试只是打开应用程序(Web应用程序),然后单击按钮下载图像。下载应立即开始。问题是,下载事件后的下一条指令将引发异常:失败:无法访问chrome。我正在使用最新的chrome和chrome驱动程序版本。
量角器的Capabilites部分如下所示:
capabilities: {
browserName: 'chrome',
loggingPrefs: { browser: 'ALL' },
chromeOptions: {
args: ['--headless', '--window-size=1240,780'],
},
}
Run Code Online (Sandbox Code Playgroud)
我正在阅读有关使用DevTools以无头模式(Page.setDownloadBehavior)启用下载的信息,但到目前为止还算不上什么。
有人也有这个问题吗?任何线索如何解决它?
谢谢。
angularjs-e2e ×10
protractor ×9
angularjs ×6
javascript ×3
appium ×1
cucumberjs ×1
download ×1
gulp ×1
karma-runner ×1
ng-grid ×1
selenium ×1
tdd ×1