标签: end-to-end

量角器中的browser.ignoreSynchronization是什么?

我已经看过很多次人们建议使用它:

browser.ignoreSynchronization=true;  // or false
Run Code Online (Sandbox Code Playgroud)

但我不明白我们为什么需要它?

javascript testing end-to-end angularjs protractor

62
推荐指数
2
解决办法
5万
查看次数

如何获取元素的父元素

例如,我button从a 的行中随机选择一个元素table.
在之后button被发现,我想要检索table其中包含选定按钮的排.

Heres是我的代码片段:

browser.findElements(by.css('[ng-click*=submit]')).then(function (results) {
  var randomNum = Math.floor(Math.random() * results.length);
  var row = results[randomNum];
         // ^ Here I want to get the parent of my random button
});
Run Code Online (Sandbox Code Playgroud)

dom end-to-end protractor

40
推荐指数
3
解决办法
2万
查看次数

量角器browser.wait不等待

我假设browser.wait应该是一个阻塞调用,但它没有像我预期的那样工作.这是我的样本:

describe("browser.wait", function() {
    beforeEach(function() {
        browser.wait(function() {
            console.log('1 - BeforeEach WAIT');
            return true;
        });
    console.log('2 - BeforeEach after wait');
});

afterEach(function() {
    browser.wait(function() {
        console.log('4 - afterEach WAIT');
        return true;
    });
    console.log('5 - afterEach after wait');
});

it('should probably actually wait.', function() {
    console.log('3 - IT statement');
    expect(1).toBe(1);      
});
Run Code Online (Sandbox Code Playgroud)

现在,因为我认为browser.wait实际上是阻塞的,我认为我的console.log调用将按顺序运行; 1,2,3,4,5;

我得到的实际输出是:

2 - BeforeEach after wait  
1 - BeforeEach WAIT  
3 - IT statement  
5 - afterEach after wait  
4 - afterEach WAIT  
Run Code Online (Sandbox Code Playgroud)

我如何让browser.wait等待?或者我完全使用了错误的功能?我需要阻止的东西,直到我的浏览器到达下一个呼叫所需的位置.

javascript testing end-to-end angularjs protractor

31
推荐指数
1
解决办法
5万
查看次数

Cypress - 如何通过文本内容查找?

在 Cypress 中,我想根据其文本内容从一组按钮中选择一个按钮。我该怎么做?这是我的方法:

export const getCustomerButton = () => getNavigationSidenav()
  .find('mat-expansion-panel-header')
  .each(($el, index, $list) => {
    const text = $el.find('.mat-content > mat-panel-title').text();
    if (text === 'Customer') {
      return $el;
    }
    return null;
  });
Run Code Online (Sandbox Code Playgroud)

我现在的问题是我必须从元素数组中过滤掉空值。有没有更简单的方法?

javascript end-to-end cypress

30
推荐指数
5
解决办法
4万
查看次数

"为定位器找到了多个元素"警告

在我的一个测试中,我使用以下命令查找元素CSS selector:

element(by.css("ul.nav button"))
Run Code Online (Sandbox Code Playgroud)

有多个匹配查询的元素,但是,因为我只需要第一个元素,所以我对选择器没问题.

问题是,protractor发出警告:

警告 - 找到定位器By.cssSelector("ul.nav button")的多个元素 - 将使用第一个结果

有可能抑制警告吗?换句话说,我怎么能protractor知道我已经意识到这个问题并且不想再显示警告了?


使用protractor开发版本(直接从master分支安装).

testing warnings end-to-end angularjs protractor

29
推荐指数
2
解决办法
2万
查看次数

用Selenium测试AngularJS

我在堆栈ASP MVC + AngularJS上有一个SPA应用程序,我想测试UI.现在我正在尝试使用PhantomJS和WebKit驱动程序的Selenium.

这是一个示例测试页面 - 具有单个元素的视图.列表项<li>从服务器动态加载,并由Angular限制.

<div id="items">
    <li>text</li>
    <li>text2</li>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过测试,并且此行中存在错误:

_driver.FindElements(By.TagName('li'))
Run Code Online (Sandbox Code Playgroud)

此时没有加载的元素,_driver.PageSource不包含元素.

我该如何等待加载项目?请不要建议Thread.Sleep()

selenium end-to-end c#-4.0 phantomjs angularjs

27
推荐指数
4
解决办法
4万
查看次数

在量角器中,browser.isElementPresent vs element.isPresent vs element.isElementPresent

在量角器中,基本上有3种方法可以检查元素是否存在:

var elm = element(by.id("myid"));

browser.isElementPresent(elm);
elm.isPresent();
elm.isElementPresent();
Run Code Online (Sandbox Code Playgroud)

这些选项是否相同且可以互换,哪个应该是首选?

javascript selenium end-to-end selenium-webdriver protractor

25
推荐指数
2
解决办法
2万
查看次数

如何阻止量角器在失败时运行更多的测试用例?

如果测量用例在量角器中失败,是否有办法退出测试套件并停止执行进一步的测试用例?

javascript testing end-to-end jasmine protractor

22
推荐指数
3
解决办法
2万
查看次数

用户验收测试(UAT)和端到端(E2E)测试是否相同?

我一直试图在网上找到这个问题的答案,但我找不到足够好的东西让我对答案感到肯定.

我相信它们基本相同,但用户验收测试(UAT)需要真实用户,而端到端(E2E)测试使用自动化工具来模拟用户?

testing end-to-end user-acceptance-testing

21
推荐指数
3
解决办法
9596
查看次数

量角器 - 计算中继器中的元素并打印它

我正在尝试计算转发器中的元素并将其打印到控制台.

这是标记:

<div class="col-md-3 ng-scope" ng-repeat="app in userApps" >...< /div> 
Run Code Online (Sandbox Code Playgroud)

目前我正在计算和比较:

expect(element.all(by.repeater('app in userApps')).count()).toEqual(4);
Run Code Online (Sandbox Code Playgroud)

它有效,但我也希望能够打印它.

我试过这个:

var rows = element.all(by.repeater("app in userApps"));
var sum = rows.count(); 
console.log(sum.getText());
Run Code Online (Sandbox Code Playgroud)

但我得到了:

TypeError: Object [object Object] has no method 'getText'
Run Code Online (Sandbox Code Playgroud)

实际上有两个问题 - 我是以正确的方式做到的吗?2.如何将其打印到控制台?

testing end-to-end angularjs angularjs-ng-repeat protractor

20
推荐指数
1
解决办法
3万
查看次数