Questions tagged «protractor»

Protractor是针对基于WebDriverJ的Angular和AngularJS应用程序的端到端测试框架。量角器可以作为独立的二进制运行器运行,也可以作为库包含在测试中。如果您想自己管理WebDriver和测试设置,请将Protractor用作库。在http://www.protractortest.org/#/和https://github.com/angular/protractor/上找到更多信息

4
toBe(true)与toBeTruthy()与toBeTrue()
之间有什么区别expect(something).toBe(true),expect(something).toBeTruthy()和expect(something).toBeTrue()? 请注意,这toBeTrue()是自定义匹配器,它是jasmine-matchers在其他有用且方便的匹配器(例如toHaveMethod()或)中引入的toBeArrayOfStrings()。 这个问题本来应该是通用的,但作为一个实际示例,我正在测试中显示的元素protractor。在这种情况下,我应该使用哪个匹配器? expect(elm.isDisplayed()).toBe(true); expect(elm.isDisplayed()).toBeTruthy(); expect(elm.isDisplayed()).toBeTrue();

3
WebDriver click()与JavaScript click()
故事: 在StackOverflow上,我看到用户报告他们无法通过selenium WebDriver“单击”命令单击元素,并且可以通过执行脚本来解决JavaScript单击问题。 Python中的示例: element = driver.find_element_by_id("myid") driver.execute_script("arguments[0].click();", element) WebDriverJS /量角器中的示例: var elm = $("#myid"); browser.executeScript("arguments[0].click();", elm.getWebElement()); 问题: 为什么在常规WebDriver单击不起作用时单击“通过JavaScript”有效?这到底是什么时候发生的,这种解决方法(如果有)的缺点是什么? 我个人使用此变通办法时并未完全理解为什么必须这样做以及它可能导致什么问题。

1
我应该使用量角器或业力进行端到端测试吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 我应该使用量角器或业力进行端到端测试吗? Angular-seed正在使用Protractor / Selenium WebDriver进行E2E,但是angular-phonecat教程使用了业力。 我读到我应该使用Karma进行单元测试,使用Protractor进行E2E,这似乎还不错,但我想我想在这里征询其他开发人员的意见。

30
如何在下拉式Protractor.js e2e测试中选择选项
我正在尝试使用量角器从下拉菜单中选择一个选项进行角度e2e测试。 这是select选项的代码片段: <select id="locregion" class="create_select ng-pristine ng-invalid ng-invalid-required" required="" ng-disabled="organization.id !== undefined" ng-options="o.id as o.name for o in organizations" ng-model="organization.parent_id"> <option value="?" selected="selected"></option> <option value="0">Ranjans Mobile Testing</option> <option value="1">BeaverBox Testing</option> <option value="2">BadgerBox</option> <option value="3">CritterCase</option> <option value="4">BoxLox</option> <option value="5">BooBoBum</option> </select> 我努力了: ptor.findElement(protractor.By.css('select option:1')).click(); 这给了我以下错误: 指定了无效或非法字符串Build info:版本:'2.35.0',修订版:'c916b9d',时间:'2013-08-12 15:42:01'系统信息:os.name:'Mac OS X' ,os.arch:'x86_64',os.version:'10 .9',java.version:'1.6.0_65'驱动程序信息:driver.version:未知 …

8
如何使用量角器检查元素是否可见?
我正在尝试使用量角器测试元素是否可见。元素的外观如下: <i class="icon-spinner icon-spin ng-hide" ng-show="saving"></i> 在chrome控制台中时,我可以使用此jQuery选择器测试该元素是否可见: $('[ng-show=saving].icon-spin') [ <i class=​"icon-spinner icon-spin ng-hide" ng-show=​"saving">​</i>​ ] > $('[ng-show=saving].icon-spin:visible') [] 但是,当我尝试在量角器中执行相同操作时,在运行时出现此错误: InvalidElementStateError: invalid element state: Failed to execute 'querySelectorAll' on 'Document': '[ng-show=saving].icon-spin:visible' is not a valid selector. 为什么这无效?如何使用量角器检查可见性?

8
如何在Protractor / WebdriverJS中设置默认浏览器窗口大小
出于某种原因,当我在工作中运行测试时,浏览器会最大化,但是当我在家运行测试时,它只会打开大约50%宽度的浏览器窗口。这会导致向下滚动等方面的差异,因此理想情况下,我希望在运行测试的每台计算机上,以相同大小打开浏览器窗口。最好的方法是什么?(我找到了其他语言的一些答案,但无法将它们改编成JavaScript) 新增中 browser.executeScript('window.moveTo(0,0);'+ 'window.resizeTo(screen.width, screen.height);'); 什么都不做(显然window.moveTo,window.resizeToChrome不支持)。

8
如何在量角器的输入上获取文本
在量角器的文档中,我看到以下示例: describe('by model', function() { it('should find an element by text input model', function() { var username = element(by.model('username')); username.clear(); username.sendKeys('Jane Doe'); var name = element(by.binding('username')); expect(name.getText()).toEqual('Jane Doe'); }); 此处显而易见的是,您可以使用“ by.model”在输入框中设置值,但是如果要查看输入框并查看其中的内容,则需要使用“ by.binding”。 我有一组代码(摘要)在其中执行: element(by.model('risk.name')).sendKeys('A value'); expect(element(by.model('risk.name')).getText()).toEqual('A value'); (在我的真实代码中,我保存了实体,然后在编辑模式下返回了该实体,并且我正在检查我的值是否已保存。但是它仍然归结为同一件事,并且此示例代码也存在相同的问题)。 这给我一个错误: Error: Expected '' to equal 'A value'. 从理论上讲,按照文档中的示例,我可以改为: element(by.model('risk.name')).sendKeys('A value'); expect(element(by.binding('risk.name)).getText()).toEqual('A …


10
如何使用量角器测试元素是否具有类?
我正在尝试量角器以e2e测试Angular应用程序,但还没有弄清楚如何检测元素是否具有特定的类。 就我而言,测试单击了提交按钮,现在我想知道form [name =“ getoffer”]是否具有类.ngDirty。有什么解决方案? describe('Contact form', function() { beforeEach(function(){ browser.get('http://localhost:9000'); element(by.linkText('Contact me')).click(); }); it('should fail form validation, all fields pristine', function() { element(by.css('.form[name="getoffer"] input[type="submit"]')).click(); expect(element(by.name('getoffer'))).toHaveClass('ngDirty'); // <-- This line }); });



9
量角器:单击按钮后如何等待页面完成?
在测试规范中,我需要单击网页上的按钮,然后等待新页面完全加载。 emailEl.sendKeys('jack'); passwordEl.sendKeys('123pwd'); btnLoginEl.click(); // ...Here need to wait for page complete... How? ptor.waitForAngular(); expect(ptor.getCurrentUrl()).toEqual(url + 'abc#/efg');

5
如何将js-modules导入TypeScript文件?
我有一个包含这样的文件的量角器项目: var FriendCard = function (card) { var webElement = card; var menuButton; var serialNumber; this.getAsWebElement = function () { return webElement; }; this.clickMenuButton = function () { menuButton.click(); }; this.setSerialNumber = function (numberOfElements) { serialNumber = numberOfElements + 1; menuButton = element(by.xpath('.//*[@id=\'mCSB_2_container\']/li[' + serialNumber + ']/ng-include/div/div[2]/i')); }; this.deleteFriend = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.