selenium - 当 isExisting 为 true 时,无法点击按钮;isDisplayedInViewport 为 true,但 WebdriverIO 中的元素 waitForDisplayed 超时
问题描述
脚本因此错误而失败。错误:元素(“.WONDERESC”)在 30000 毫秒后仍未显示
尝试了 Xpath、(relative、fixed、text()} 和 CSS 选择器的不同组合,但未单击按钮。代码块中的登录按钮div:
<div>
<div class="WONDERBSC" role="form">
<div>
<div class="WONDERJ1B" data-automation-id="userName">
<div class="TOM-Label WONDERP1B"
title="Username">Username</div>
<input type="text"
class="TOM-TextBox WONDERM1B" aria-label="Username">
<button type="button" class="TOM-Button WONDERN1B"/>
</div>
</div>
<div>
<div class="WONDERJ1B"
data-automation-id="password">
<div class="TOM-Label WONDERP1B" title="Password">Password</div>
<input type="password" class="TOM-PasswordTextBox WONDERM1B" aria-label="Password">
<button type="button" class="TOM-Button WONDERN1B"/>
</div>
</div>
<button type="button"
class="WONDERESC"
data-automation-id="goButton">Sign In</button>
</div>
</div>
请提出解决方法-其他条件也满足-可见性-真实,显示块,不透明度不为零。
谢谢,谭
解决方案
As it was told in the comments, you are using invalid selectors.
Assuming you have the latest WebdriverIO v6, the following works like a charm
// open page
browser.url('https://impl.workday.com/wday/authgwy/accenture_dpt2/login.htmld?redirect=n')
const form = $('[data-automation-id="authPanel"] [role="form"]')
// make sure form is visible
expect(form).toBeVisible()
// define form data
const formData = [{
id: 'userName', value: 'test'
}, {
id: 'password', value: 'password'
}]
// fill form
formData.forEach(f => {
form.$(`[data-automation-id="${f.id}"] input`).setValue(f.value)
})
// submit form
form.$('button[data-automation-id="goButton"]').click()
// make sure error message exist
const errorMessage = $('[data-automation-id="alertMessage"]')
expect(errorMessage).toBeVisible()
expect(errorMessage).toHaveTextContaining('Invalid user name or password')
推荐阅读
- android - PreferenceManager.setDefaultValues 不适用于自定义首选项
- python - 如何处理 Django 嵌套模板标签
- mysql - MYSQL:INNER JOIN 与 BIG TABLES 的替代方案(太慢了)
- android - Flutter:资源链接失败
- dataframe - 将聚合列添加到无需连接的数据透视表
- r - 没有图例的ggplot2地图
- python - Azure 中的 Python 库
- sql - 我正在尝试使用 sql 在两年的两个相同日期之间计算方差
- javascript - 使用js更改背景图像不透明度而不影响前景图像
- vagrant - Vagrant:在 ssh 工作时 ping 不工作