【问题标题】:Not able to access bootstrap modal dialog in Selenium Webdriver无法访问 Selenium Webdriver 中的引导模式对话框
【发布时间】:2015-10-09 13:47:53
【问题描述】:

我想访问打开的模型对话框的内容,并且想访问按钮(是,否)。

这是 HTML 代码的样子

<div class="modal-dialog">
<div class="modal-content">
    <div class="modal-header"><div class="bootstrap-dialog-header">
        <div class="bootstrap-dialog-close-button" style="display: none;">
            <button class="close">×</button>
        </div>
        <div class="bootstrap-dialog-title" id="e6adf6aa-dcbf-4fb8-9935-c083762f2812_title">
        Inactivate user
        </div>
    </div>
</div>
<div class="modal-body">
    <div class="bootstrap-dialog-body">
        <div class="bootstrap-dialog-message">
        Are you sure you want Inactivate user?
        </div>
    </div>
</div>
<div class="modal-footer">
    <div class="bootstrap-dialog-footer">
        <div class="bootstrap-dialog-footer-buttons">
            <button class="btn btn-default" id="868d2d8a-67f6-4308-a3c8-0246a5d4618c">Yes</button>
            <button class="btn btn-default" id="23e4d027-ef32-4b58-b8b6-6f95bead2db4">No</button>
        </div>
    </div>
</div>

还有一件事是按钮的 id 是动态的。

【问题讨论】:

    标签: twitter-bootstrap selenium


    【解决方案1】:

    经过这么多的谷歌搜索,我找到了解决方案......这是解决这个问题的简单方法

    //Switch to active element here in our case its model dialogue box.
    driver.switchTo().activeElement();
    
    Thread.sleep(3000);
    
    // find the button which contains text "Yes" as we have dynamic id
    driver.findElement(By.xpath("//button[contains(text(),'Yes')]")).click();
    

    这段代码解决了我的问题。

    【讨论】:

    • 这解决了我使用 node-webdriver 的问题。 driver.switchTo().activeElement().then(() => {}) 谢谢!!
    • 我希望这对我有用。但它没有。当自动化过程尝试单击引导模式弹出窗口上的下载按钮时,模式弹出窗口会消失。有什么想法吗?在这里查看我的问题:stackoverflow.com/questions/72133835/…
    【解决方案2】:

    ID 尝试使用 xpath 喜欢:

    By.XPath("//div[@class='bootstrap-dialog-footer-buttons']//button[text()='Yes']")

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      如果元素的 ID 没有预定义,CSS 类可以用作有效的选择器。 当然,这适用于页面中只有一个具有该类的元素的情况。 对于多个元素,我建议您使用不同的 css 类标记每个元素,例如:

      <button class="yes btn btn-default" id="868d2d8a-67f6-4308-a3c8-0246a5d4618c">Yes</button>
      <button class="no btn btn-default" id="23e4d027-ef32-4b58-b8b6-6f95bead2db4">No</button>
      

      然后你可以使用简单的 CSS 选择器,比如

      button.btn-default.yes
      

      使用硒达到所需的元素。

      【讨论】:

        猜你喜欢
        • 2016-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-09
        相关资源
        最近更新 更多