2017-07-28 14 views
1

IVEは、クラス名とidを持っているのdivからテキストを取得して、いくつかのトラブルを持って、私は element(by.css('.panel-body')).getText();<-return object Objct element(by.className('panel-body')).getText();<-return object Object element(by.id('message-body')).getText();<-return object Object element(by.xpath('//*[@id="message-body"]/text()[3]')).getText()<-return textObject を試してみましたHTML view, I need to get this link 0.0.0.0:3000...分度器 - セレン要素角度2活字体

HTMLビューがあり、私はこのリンク0.0を取得する必要があります。 0.0:3000文字列に、あなたは私を助けることができますか?

+0

[OK]を、のgetTextは約束を返し、そのオブジェクトから文字列を抽出する方法はありますか? –

+1

あなたは約束を解決する必要があります。 plsはこのリンクを参照しています - https://stackoverflow.com/questions/29478905/protractor-element-gettext-returns-an-object-and-not-string –

答えて

1

URLを抽出するために、正規表現を使用して、おかげで:):

element(by.css('#message-body')) 
    .getText() 
    .then(text => text.match(/[^"\s]+\/student\/register\/\?[^"\s]+/)[0]) 
    .then(url => console.log(url)); 
+0

ありがとう、あなたは多分この関数からこのURLを返す方法を知っていますか?戻り値のある要素をすべて返すと、要素のオブジェクトが返されます:) –

+1

あなたは非同期呼び出しを扱っているため、関数から結果を直接取得することはできません。つまり、この関数は '.then'で解決できる' Promise'を返します。したがって、 'url'を他の場所で使用したい場合は、グローバル変数に格納するか、' Promise'を返して、値が必要なときに解決してください。 –

関連する問題