如何从元素中获取文本 - Protractor Javascript

时间:2018-02-12 20:24:10

标签: javascript html angular protractor

我试图仅从html元素获取原始文本。例如:

<h1>This is a <br> Test</h1>

我希望能够将<h1>内的文字减去<br> ....

this is a Test

我试过了:

browser.driver.findElement(By.tagName('h1')).getAttribute('textContent');

browser.driver.findElement(By.tagName('h1')).getAttribute('innerHTML');

browser.executeScript("return arguments[0].innerHTML;", element(locator));

我没有看到getAttribute('textContent')无法正常工作的原因,我认为这是获取原始文本的最简单方法。

我知道在过去的几个版本中,角度调整器的角度发生了一些重大变化,导致我使用browser.executeScript

更新

如果您直接将其与量角器一起使用,请发布解决方案。

2 个答案:

答案 0 :(得分:1)

这应该有用。

element(by.css('h1')).getText().then((value: string) => {
    const val: string = value.replace(/[\n\r]/g, '');
});

方便的cheatsheet for protractor

并将突出Andrew Lohr发布的内容。请务必查看docs:)

答案 1 :(得分:0)

到目前为止,答案还没有解决只收到<br>的文本。

Yong的回应是让我走上寻找解决方案的道路。

对于那些感兴趣的人。最简单的方法是获取文本并使用replace来改为使用空格切换<br>

    element(by.(xxx)).getText().then(function(text) { 
      text = text.replace(replace(/(\r\n|\n|\r)/gm," "); 
      console.log(text);
    });