質問

要素を使用して(model())構文を使用してフィールドと入力テキストを見つけます。

要素(by.Model( 'sample_ad.id'))。SendKeys( 'Batman');

Chromedriverから例外を取得します。

Stacktrace:
     Error: Timed out waiting for Protractor to synchronize with the page after 11 seconds
    at Error (<anonymous>)
==== async task ====
WebDriver.executeScript()
    at Protractor.waitForAngular (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:278:22)
    at Protractor.findElement (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:427:8)
    at Object.elementFinder.(anonymous function) [as sendKeys] (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:62:21)
    at null.<anonymous> (/Users/jon/dev/project_name/test/e2e/features/somedirectiveSpec.js:24:39)
    at /Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:54:12
==== async task ====
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:53:12)
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/node_modules/minijasminenode/lib/async-callback.js:45:37)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
.

なぜこれが壊れているのかわからないが、4つの折り返しは非常に壊れやすいようです... ブラウザオブジェクトを使って要素、入力テキストなどを見つけるための問題はありません...

あらゆる助けが高く評価されるでしょう

編集:行を次のように変更した場合、テキストフィールドと対話することができます。 Browser.Driver.FindElement(Protractor.By.ID( 'sample_ad_id'))。SendKeys( 'Batman');

他のヒント

うまくいけばこれは他の人を助けるでしょう....

これをGitHubで見つけました(参考文献リンクを参照)。私が戻ってきたスクリプトであると私が信じる問題、したがって、SendKeysはうまくいきませんでした。Practorオブジェクト(要素、PTORなど)を使用してDOMと対話する前に、この変数を設定してください。

browser.ignORESYNCHRONIZATION= true;

次の作業は、非同期呼び出しに頼らないため、DOMと直接対話し、入力フィールドにキーを挿入します。 browser.driver.findelement(protractor.by.id( 'sample_ad_id'))。sendkeys( 'Batman');

私の電話がうまくいかなかった理由(私はを信じている)は、時間に戻らなかった非同期呼び出しがあるためです。
要素(by.Model( 'sample_ad.id'))。SendKeys( 'Batman');

参照: https://github.com/angular/protractor/issues/325

あなたのテストがタイムアウトしているようです。PROUTRACTORのデフォルトタイムアウトは11秒です。

このテストのための別のタイムアウトを設定してみてください:

it('should override timeout', function() {
  // Timeout of 30 seconds.
  element(by.model('sample_ad.id')).sendKeys('batman');
}, 30000)
.

PROUTRACTOR構成ファイル内のすべてのテストのタイムアウトをオーバーライドすることもできます。このサンプル設定ファイル:

を参照してください。

https://github.com/andresdominguez/Practor-Meetup / Blob / Master / Protractor-Config.js#l19

// Inside the protractor config file.
onPrepare: function() {
  // Override the timeout for webdriver.
  var ptor = protractor.getInstance();
  ptor.driver.manage().timeouts().setScriptTimeout(60000);
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top