jjzjj

protractor

全部标签

javascript - Protractor - 等待多个元素

我正在尝试等待页面上的多个元素,我不知道可能有多少,但至少会有一个。我了解使用以下方法等待单个元素,效果很好。varEC=protractor.ExpectedConditions;browser.wait(EC.presenceOf(element(by.css("h3[title='TestForm']"))),10000);expect(element(by.css("h3[title='TestForm']")).isPresent()).toBeTruthy();我想稍微改变一下以等待多个元素,所以尝试了下面的方法(将.all添加到元素)。varEC=protractor.E

javascript - 如何避免 Protractor 出现 "jasmine.suite() required"错误信息?

我为验证登录页面上的凭据而编写的代码是:describe('Login',function(){varloginURL;varemail=element(by.id("email"));varpassword=element(by.id("password"));varLoginButton=element(by.buttonText("Signin"));});it('shouldredirecttologinpage',function(){browser.get('https://pacific-meadow-5124-dev-test.herokuapp.com');login

javascript - 断言一个元素是有焦点的

根据HowdoIassertanelementisfocused?线程,您可以通过切换到activeElement()来检查元素是否获得焦点,并断言这是您期望获得焦点的同一元素:expect(page.element.getAttribute('id')).toEqual(browser.driver.switchTo().activeElement().getAttribute('id'));在我的例子中,当前获得焦点的元素没有id属性。我应该怎么做而不是检查id?奖励问题:此外,正如您从我尝试解决它的过程中看到的那样,我似乎无法期望/断言一个元素(或Web元素)作为一个完整的对象。

javascript - 解释 Protractor 中的 async/await

我是Protractor的新手。这个函数中的async/await是如何工作的?谁能给我解释一下?it('TC_01-VerifyHomepagetitle',async()=>{awaitheaderPage.waitForTitleContain('Homepage',30000);awaitexpect(headerPage.getTitle()).toEqual('Homepage');}); 最佳答案 这都是关于JavaScript的异步特性。目前Protractor提出了几种处理异步操作的方法,(我没有在这里描述直接的p

javascript - Protractor/WebDriverJS 中的 by.js 定位器是什么?

最近,我注意到Protractor文档中添加了一个新的定位器-by.js():LocatesanelementsbyevaluatingaJavaScriptexpression,whichmaybeeitherafunctionorastring.我了解此定位器提供的功能,但我错过了此定位器有用的真实世界用例。我什么时候应该更喜欢使用by.js而不是by.css等其他内置定位器? 最佳答案 我觉得用例是使用核心javascript函数获取元素,每当css和其他元素定位器无济于事或没有我们可以使用的属性时。场景-如果您使用核心jav

javascript - 元素在点处不可点击 - Protractor

我收到一个错误消息,说我尝试点击的元素无法点击,我认为这不是真的。我的错误看起来是:1)OpenVehiclePageandpopulatedataPopulatevehicledataMessage:UnknownError:unknownerror:Elementisnotclickableatpoint(1315,371).Otherelementwouldreceivetheclick:...(Sessioninfo:chrome=39.0.2171.71)(Driverinfo:chromedriver=2.13.307647(5a7d0541ebc58e69994a6fb2

javascript - Protractor 和 Angular : How to test two pages in an app, 一个接一个?

我想在我的Angular应用程序的两个单独页面上运行Protractor测试:/dashboard和/articles。复杂的是我必须手动登录应用程序。目前我有这个设置:varLoginPage=function(){ptor=protractor.getInstance();this.login=function(url){ptor.get(url);ptor.findElement(protractor.By.model('email')).sendKeys(config.LOGIN_EMAIL);ptor.findElement(protractor.By.model('pass

javascript - 如何在 Protractor/AngularJS 测试中重用代码

我们在几个JS文件中为我们的AngularJS应用程序进行了几个Protractor端到端测试,它们运行良好。但是,在整个测试过程中有很多重复的代码,我们想把它擦干。比如我们每次登录,都要点击文本元素,输入用户名和密码,然后点击回车。现在每个JS文件都有自己的登录函数副本,该函数在每次测试之前调用。最好将它们重构为我们可以导入的模块。我已经搜索了几个小时,但没有找到好的解决方案。我们应该怎么做? 最佳答案 您可以创建nodejs模块并将它们包含在Protractor配置中login-helpers.jsexports.loginTo

javascript - Protractor - 启动 chrome 以禁用 cors 的网络安全

因此我们的应用程序在启用CORS的情况下可以在生产环境中运行。我有一个未在本地启用CORS的项目。有没有办法禁用Protractor的网络安全?有没有办法向selenium实例添加参数?我们正在寻找基于配置的解决方案。我们的本地开发机器非常受限于我们可以安装的内容。这可能吗?我试过的是设置chrome选项:https://github.com/angular/protractor/issues/175但这似乎只用于chrome扩展。 最佳答案 还有args在chromeOptions中,您可以在其中提供--disable-web-s

javascript - Protractor - 在端到端测试中检查字符串不为空的最佳方法

使用端到端测试确保找到值(例如不是空字符串)的最佳方法是什么,我的示例只是匹配文本本身,我想计算字符串长度并确保它不为0。describe'DeviceDetails',->device=ionic.Platform.device()details='deviceManufacturer':$('#deviceManufacturer'),'deviceModel':$('#deviceModel')it'DeviceManufacturermustnotbeempty',->expect(details.deviceModel.getText()).toEqual'10'