このウェブサイトのsendKeys()
モーダルダイアログボックスで使用しようとしています。このダイアログボックスは、[サインイン]ボタンをクリックすると表示されます。ボックスにフォーカスを切り替える方法が見つからないようです。要旨を見る
で使ってみbrowser.driver.switchTo().activeElement();
ました
InvalidLogInUnSuccess: {
get: function () {
this.loginButton.click();
browser.driver.switchTo().activeElement();
this.email.sendKeys("Test");
}
}
運がなく、ElementNotVisibleErrorをスローします
メッセージ:ElementNotVisibleError:要素が表示されません(セッション情報:chrome = 41.0.2272.101)(ドライバー情報:chromedriver = 2.14.313457(3d645c400edf2e2c500566c9aa096063e707c9cf)、platform = Windows NT 6.3 x86_64)スタックトレース:ElementNotVisibleError:要素が表示されません
アニメーション効果でポップアップを開いているときに内部アプリケーションをテストしているときに同様の問題が発生し(ここでは原因だと思います)、ポップアップ内の要素が表示されるのを待つことを考えました。
visibilityOf
この場合、期待される条件が機能します。
var email = element(by.css('.container.login.ng-scope #email'));
browser.wait(EC.visibilityOf(email), 5000);
email.sendKeys('test');
EC
私が通常グローバルに定義するものはどこにありますかonPrepare()
:
onPrepare: function () {
...
global.EC = protractor.ExpectedConditions;
},
ちなみに、ロケーターはここで改善できると思います。
ng-scope
私が頼りにするものではありませんそこにあるmodel
上に定義されたemail
フィールド、方法については:
element(by.model('email'));
参考までに、私が実行した完全な仕様:
"use strict";
describe("gifteng test", function () {
var scope = {};
beforeEach(function () {
browser.get("http://www.gifteng.com/?login");
browser.waitForAngular();
});
describe("Logging in", function () {
it("should send keys to email", function () {
var email = element(by.css('.container.login.ng-scope #email'));
browser.wait(EC.visibilityOf(email), 5000);
email.sendKeys('test');
});
});
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加