2016-11-14 17 views
0

JavaScriptでコーディングするセレンと分度器のオートメーションフレームワークを使用しています。しかし、このアプリのこの部分はAngularなしで作られています。番号を増やすにはプラスとマイナスのボタンを持つ数量フィールドがあります。私はテストのために番号そのものを選択する必要があります。 、スパン内のダイナミックな番号を選択

$('.cart-product .product-quantity').text() 

今セレンに:

は、ここで私は、コンソールでjQueryのを使用している場合は、私は次のように2を選択することができます番号として '2'

<div class="modify-product padding-lg-top hide-on-review"> 
<b data-lang-key="store.qty">Qty:</b> 
<span class="modify-action"> 
    <span class="remove">-</span> 
    <span class="product-quantity">2</span> 
    <span class="add">+</span> 
</span> 
</div> 

とDOMです私は次のセレクタを使用しようとしています:

return element(by.css('.cart-product .product-quantity').text()) 

これまでこれは失敗していることが判明しています。私も.val()と他のいくつかのメソッドを試しましたが、私が試したものすべてがspan要素全体を返すか、またはundefinedとして返されます。

思考?

+0

私はまだエラーTypeError例外を取得:要素(...)をテキストには、機能 – MikeyH

+1

そのnot'text'ではありません。 'getText()'を使う必要があります。 –

+1

テキストを取得するメソッドが何であれ、要素オブジェクトで呼び出されるべきではありませんか?現在使用されているように内部にはありません。要素を見つけ、要素のようなテキストを取得します(by.css( 'css_selector'))。getText() – lauda

答えて

0

次のリンクを参照してください。

Link 1

Link 2

重要 - シナリオのこの種のXPathを使用しないでください

0
return element(by.className('product-quantity')).getText(); 

promise.Soは、あなたが使用する必要が戻ります)のgetTextを(覚えておいてください()を取得します値

0

分度器メソッドは、非同期操作であるため常に約束を返します。あなたのテストは、次のようにする必要があります:

let quantities = element.all(by.css('.product-quantity')); 
quantities.get(0).then(function(el) { 
    expect(el.getText()).to.become('2'); 
}); 
関連する問題