javascript - Selenium 测试 - 确定/取消弹出窗口立即消失

标签 javascript java selenium

这里很奇怪。手动测试时,我单击删除按钮,等待弹出窗口 enter image description here 然后我单击“确定”,记录将按预期删除。 但是当我尝试在 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 的问题。

有人知道是什么原因造成的吗?

进一步测试如下。 我在脚本单击删除运行并运行脚本的位置放置了一个断点。页面按预期加载,我找到了问题所在。

  1. 我手动单击“删除”按钮,弹出窗口会出现并一直保留,直到我单击“取消”。

  2. 使用此代码,我单步执行,弹出窗口出现,然后立即消失。

    _driver.findElement(By.id("ctl00_cpContentLeft_btnDelete")).click();

  3. 使用此代码,响应为 2。

    _driver.findElement(By.id("ctl00_cpContentLeft_btnDeletePatient")).sendKeys(Keys.SPACE);

  4. 然后我尝试双击,但没有任何反应。 在所有测试中,我在控制台中都没有看到任何错误。

最佳答案

我希望您在页面完全加载之前单击删除按钮,这就是弹出窗口突然消失的原因。请在点击删除按钮之前添加等待。

步骤:

  1. 完全加载页面(在此处添加等待)
  2. 点击删除按钮
  3. 点击“确定”按钮。

请在此处添加更多代码和屏幕截图。这会更有帮助

关于javascript - Selenium 测试 - 确定/取消弹出窗口立即消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69710309/

相关文章:

javascript - Chrome Kiosk 模式下的安全网站

javascript - 后续变量声明必须具有相同的类型

java - 对象 a = 对象 b;对象 a 会发生什么?

java - 来自属性文件中的列表 <String> 的 spring bean

java - Selenium WebDriver - 使用 HTLMUnitDriver 时下拉列表仅包含第一个元素

javascript - 正则表达式的乐趣 - 找到一些但跳过其他

JavaScript Date.UTC 在不同时区给出错误的日期

java - 无论如何,Idea 中是否可以识别同一模块中 lombok 生成的 getter/setter

javascript - Selenium JavaScript Executor 对 .checked 返回 null,但对 .click() 有效?

java - Selenium java查找多个显示元素