我的页面上有一个按钮,当用户向下滚动时该按钮可见。因此,Protractor测试给我一个错误:UnknownError:unknownerror:Elementisnotclickableatpoint(94,188).我尝试使用:browser.executeScript('window.scrollTo(0,document.body.scrollHeight)');当我在Protractorelementexplorer.js中测试它时它起作用了,但在我的常规测试中它什么也没做。还有其他解决方法吗? 最佳答案 需要等待prom
有什么区别?对于Angular项目,使用其中一种比使用另一种有什么优势?Nightwatch.js对比Protractor 最佳答案 如果您正在处理AngularJS项目,选择很简单-Protractor:它是专门为Angular应用程序制作的(尽管它也可以用于非Angular应用程序)支持Angular特定的定位器策略(如by.model、by.repeater等)等待Angular在页面加载期间启动(同步)它正在积极维护并主要由谷歌开发人员与Angular团队密切合作进行改进-这意味着Protractor遵循Angular发布周
我假设browser.wait应该是一个阻塞调用,但它没有像我预期的那样工作。这是我的示例:describe("browser.wait",function(){beforeEach(function(){browser.wait(function(){console.log('1-BeforeEachWAIT');returntrue;});console.log('2-BeforeEachafterwait');});afterEach(function(){browser.wait(function(){console.log('4-afterEachWAIT');returnt
我正在用Protractor为Angular应用程序编写测试。我想填写一个登录表单并提交。我该怎么做?我已经走到这一步了,但我不知道如何设置电子邮件和密码字段的值。describe('Thedashboard',function(){ptor=protractor.getInstance();beforeEach(function(){ptor.get('#/dashboard');varemail=ptor.findElement(protractor.By.model('email'));varpassword=ptor.findElement(protractor.By.mode
我正在使用Protractor执行一些端到端测试,我想通过命令行传递登录凭据,而不是将它们存储在规范文件中。我发现有人使用process.argv.forEach的帖子,但我如何存储这些值并在另一个规范文件中使用它们?我有一个名为login-spec.js的文件,我想在其中使用命令行参数。谢谢! 最佳答案 在referenceconfig这部分可能很有趣://Theparamsobjectwillbepasseddirectlytotheprotractorinstance,//andcanbeaccessedfromyourtes
我有一个元素定义为this.clientRowName=element(by.id('CLIENT_NAME'));//pageobjectfile我想阅读这个元素中的文本,它是“ABC”但是正在做:varclient=page.clientRowName.getText();返回一个对象而不是一个字符串。有没有其他方法可以获取元素的文本 最佳答案 getText()返回一个promise,你需要解决它:page.clientRowName.getText().then(function(text){console.log(text
我已经试过了:browser.actions().keyDown(protractor.Key.ENTER).keyUp(protractor.Key.Enter).perform();给出了错误:Error:Notamodifierkey 最佳答案 Keyup/Keydown仅限于WebDriver中的修饰键(shift、ctrl等)。我想你想要browser.actions().sendKeys(protractor.Key.ENTER).perform(); 关于javascrip
我在人们建议使用的地方见过很多次:browser.ignoreSynchronization=true;//orfalse但我不明白为什么我们需要它? 最佳答案 简单的答案是它让Protractor不等待Angularpromise,例如来自$http或$timeout的promise,如果您正在测试$http或$timeout期间的行为(例如,“正在加载”消息),或者测试非Angular站点或页面,例如单独的登录页面.例如,要测试在请求期间设置加载消息的按钮,您可以在获取元素时将其设置为true+检查其内容element(by.c
如果Protractor正在为E2E测试替换AngularScenarioRunner,这是否意味着我仍然可以将它与Karma一起使用作为我的E2E测试框架? 最佳答案 Protractor的当前维护者不推荐:https://github.com/angular/protractor/issues/9#issuecomment-19927049ProtractorandKarmashouldnotbeusedtogether;insteadtheyprovideseparatesystemsforrunningtests.Protr
出于某种原因,当我在工作中运行我的测试时,浏览器被最大化,但当我在家里运行它们时,它只打开一个大约50%宽度的浏览器窗口。这会导致向下滚动等出现一些差异,因此我希望它在运行测试的每台机器上打开一个相同大小的浏览器窗口。执行此操作的最佳方法是什么?(我找到了其他语言的一些答案,但我无法将它们改编成JavaScript)添加browser.executeScript('window.moveTo(0,0);'+'window.resizeTo(screen.width,screen.height);');什么都不做(显然GoogleChrome不支持window.moveTo和window