web-dev-qa-db-ja.com

要素のouterHTML、innerHTML、およびgetText()を取得する方法

私は分度器フレームワークの初心者ですが、outerHTML/InnerHTML/getText()(子要素)を取得して、要素<img>はビューにレンダリングされます。さあ、ng-gridと最初の列を調べて、img要素が含まれているかどうかを確認しようとしています。また、属性[src=res/someImg.png

ここに私が得たものがあります

html

<div>
  <a>
    <div>
        <div>
            <span>
                <i><img src="res/someImg.png"></i>
            </span>
        </div>
        <div>
            ...
        </div>
        <div>
            ...
        </div>
    </div>
  </a>
</div>

テスト

it('should render an icon in agent list', function () {
    var row = element.all(by.repeater('row in renderedRows')).get(3);
    expect(row).not.toEqual(null); //pass
     expect(row.element(by.css('img')).getAttribute('src').getText()).toMatch(/someImg.png/);//fail with null
    expect(row.element(by.css('span')).outerHTML).toBe('<i><img src="res/someImg.png"></i>'); //fails
    expect(row.element(by.css('i')).innerHTML).toBe('<img src="res/someImg.png">'); //fails

});

誰かが私が間違っていることを教えてもらえますか?

16
Simple-Solution

もう少し明示的に:

expect(row.element(by.css('img')).getAttribute('src')).toMatch(/someImg.png/);
expect(row.element(by.css('span')).getOuterHtml()).toBe('<i><img src="res/someImg.png"></i>'); 
expect(row.element(by.css('i')).getInnerHtml()).toBe('<img src="res/someImg.png">'); 
8
Justin Acount

3つのケースすべてで getAttribute() を使用します-srcouterHTMLおよびinnerHTMLの場合:

expect(row.element(by.css('img')).getAttribute('src')).toMatch(/someImg.png/);
expect(row.element(by.css('span')).getAttribute('outerHTML')).toBe('<i><img src="res/someImg.png"></i>'); 
expect(row.element(by.css('i')).getAttribute('innerHTML')).toBe('<img src="res/someImg.png">'); 

テスト済み-私のために働く。

41
alecxe