1

ログインを自動化するためにキュウリとセレンでchimpjsを使用しようとしていますが、現在モーダルを介してログインしています。そして現在、そのモーダルのログインボタンをクリックしようとすると、すべて同じエラーが発生します。

 Error: unknown error: Element is not clickable at point (764, 42). Other element would receive the click: <div class="login-overlay " style="display: block; opacity: 0.969096;">...</div>

これらは、私がセレンに対して行っている手順です。ユーザー名またはパスワードを入力する前にモーダルが表示されるのを待っていますが、ログイン ボタンをクリックしようとすると失敗します。

module.exports = function() {
  this.Given(/^I am on the website homepage$/, function () {
    client.url('example.com');
  });

  this.When(/^I click the login button$/, function () {
    client.click('.navbar__link--login');
  });

  this.Then(/^I see the login screen$/, function () {
    client.waitForExist('.login-overlay');
  });

  this.Then(/^I enter my username in the email field$/, function () {
    client.setValue('#username', 'myemail@email.com');
  });

  this.Then(/^I enter my password in the password field$/, function () {
    client.setValue('#password', 'myemail@email.com');
  });

  this.Then(/^And I click the login button$/, function () {
    client.click('.login-btn');
  });

};

現在、最後のステップを除いてすべて合格しています。ログインにモーダルを使用しているからですか?または、セレンのモーダルのボタンをクリックする方法はありますか? それとも、本当に明白なステップが欠けていますか?

解決策:これに対する解決策を見つけました。要素をクリックすることはできませんでしたが、client.submitForm(selector)オプションを使用してフォームを送信することはできました。これを行うと問題が解決したようで、最後のステップに合格することができました。また、読みやすくするために、最後のステップを「ログイン フォームを送信します」に変更しました。フォーム送信オプションの詳細については、http ://webdriver.io/api/action/submitForm.html を参照してください。

4

1 に答える 1

1

コントロールの上に「login-overlay」要素があるようです。

回避策として、非表示にます。

client.execute("arguments[0].style.display = 'none';", client.element('.login-btn'));

未検証。

于 2016-04-07T23:19:18.760 に答える