Protractor: 要素のテキスト値の読み方

作成日 2013年10月03日  ·  3コメント  ·  ソース: angular/protractor

バインディング要素のテキスト値を読み取ろうとしています。 関数getText()を使用して要素のテキスト値を読み取りましたが、機能しません。 他にそうする方法はありますか

ptor = protractor.getInstance();
ptor.get( 'http://www.angularjs.org');

ptor.findElement(protractor.By.input("yourName")).sendKeys("Julie");

var Greeting = ptor.findElement(protractor.By.binding( "{{yourName}}!"));

console.log(greeting.getText());

最も参考になるコメント

@vishalshivnath webdriverと分度器がどのように機能するかについては、ドキュメントを確認してください。分度器のアクションはpromiseを返すため、おそらくpromiseオブジェクトです。

@tennisgent <input>要素に対してgetText()が常に空であるという奇妙なWebドライバーの癖があります。 代わりにuserNameInput.getAttribute('value')実行してみてください。

全てのコメント3件

私は同じ問題を抱えています。 分度器を起動して実行しましたが、入力要素からデータを取得できないようです。 私のテストは:

it('should allow text entry into the userName field', function(){
    userNameInput = ptor.findElement(protractor.By.input('user.userName'));
    userNameInput.sendKeys(testUserName);
    expect(userNameInput.getText()).toEqual(testUserName);
});

しかし、テストは次のように失敗します。

1)ログインテストサインインでは、userNameフィールドにテキストを入力できる必要がありますメッセージ:''は 'xacttester'と等しいと予想されます。

テストを見ると( ptor.driver.sleep(2000)速度を落とす)、フィールドにテキストが入力されるのを見るのですが、 getText()呼び出すと、空の文字列が返されます。

誰かが私が間違っていることについて何か考えがありますか?

@vishalshivnath webdriverと分度器がどのように機能するかについては、ドキュメントを確認してください。分度器のアクションはpromiseを返すため、おそらくpromiseオブジェクトです。

@tennisgent <input>要素に対してgetText()が常に空であるという奇妙なWebドライバーの癖があります。 代わりにuserNameInput.getAttribute('value')実行してみてください。

browser.findElement',代わりに

  it('should return the same result as browser.findElement', function() {
    browser.get('index.html');

   // var e = element(by.id('new_todo'));
    var e = $('#new-todo');
    e.sendKeys("foo");

    expect(e.getAttribute('value')).toEqual(
      "foo")
  });
このページは役に立ちましたか?
0 / 5 - 0 評価