[英]Can I click on a button on a modal with selenium?
我正在尝试使用带有黄瓜和硒的 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
听起来控件顶部有一个“登录覆盖”元素。
作为一种解决方法,使其不可见:
client.execute("arguments[0].style.display = 'none';", client.element('.login-btn'));
未测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.