这里很奇怪。手动测试时,我单击删除按钮,等待弹出窗口 然后我单击“确定”,记录将按预期删除。 但是当我尝试在 Java/Selenium 中做同样的事情时,它会像这样 ->
WebElement element = _driver.findElement(By.id("btnDeletePatient"));
JavascriptExecutor executor = (JavascriptExecutor)_driver;
executor.executeScript("arguments[0].click();", element);
或
_driver.findElement(By.id("btnDeletePatient")).click();
两者都有相同的响应,“确定/取消”弹出窗口将出现,然后立即消失。
这是按钮的代码
<input type="submit" name="ctl00$cpContentLeft$btnPatient"
value="Delete User" onclick="return userDelete();"
id="ctl00_cpContentLeft_btnPatient"
tabindex="81" class="btn btn-outline-primary btn-sm mr-3">
这是函数 userDelete 的代码
function userDelete() {
if (confirm("Are you sure you wish to delete this user?")) {
return true;
}
else {
return false;
}
}
我现在也在 Edge 中尝试了同样的操作,同样的事情,所以这似乎不是 Chrome 的问题。
有人知道是什么原因造成的吗?
进一步测试如下。 我在脚本单击删除运行并运行脚本的位置放置了一个断点。页面按预期加载,我找到了问题所在。
我手动单击“删除”按钮,弹出窗口会出现并一直保留,直到我单击“取消”。
使用此代码,我单步执行,弹出窗口出现,然后立即消失。
_driver.findElement(By.id("ctl00_cpContentLeft_btnDelete")).click();
使用此代码,响应为 2。
_driver.findElement(By.id("ctl00_cpContentLeft_btnDeletePatient")).sendKeys(Keys.SPACE);
然后我尝试双击,但没有任何反应。 在所有测试中,我在控制台中都没有看到任何错误。
最佳答案
我希望您在页面完全加载之前单击删除按钮,这就是弹出窗口突然消失的原因。请在点击删除按钮之前添加等待。
步骤:
- 完全加载页面(在此处添加等待)
- 点击删除按钮
- 点击“确定”按钮。
请在此处添加更多代码和屏幕截图。这会更有帮助
关于javascript - Selenium 测试 - 确定/取消弹出窗口立即消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69710309/