有没有使用Puppeteer

时间:2018-07-10 17:47:42

标签: puppeteer

如何使用Puppeteer(v1.15.0)滚动到“模态”窗口的底部?我需要单击“模态”窗口底部的“接受”按钮,但是只有滚动到“模态”窗口的最底部之后才能启用该按钮。 “模态”窗口包含许多文本,在“模态”窗口固定高度的情况下,需要滚动。

现在,我要通过.boundingBox()获取按钮元素的位置,然后将鼠标通过相对像素位置移动到模式垂直滚动条的底部,然后单击它,直到到达底部。木偶戏中还有更“本土”的方式吗?

模态HTML类似于:

<div class="modal-header">
    <h4 class="modal-title" style="text-align:center">Some Title</h4>
</div>
<div class="modal-body" style="height: 475px; overflow:auto;">
    <div id="msgBody">lots and lots of text...
    </div>
</div>
<div class="modal-footer">
    <input id="modal-option" type="submit" class="btn btn-success" name="option" value="Accept" disabled="disabled">
    <input id="modal-cancel" type="button" class="btn btn-warning" name="cancel" value="Decline">
</div>

1 个答案:

答案 0 :(得分:1)

关于您的最后评论,page.click()page.hover()都以相同的方式将元素滚动到视图中。 page.click()的API documentation状态:

  

此方法使用选择器获取一个元素,如果需要,将其滚动到视图中,然后使用page.mouse单击该元素的中心。

对于page.hover():

  

此方法使用选择器获取一个元素,如果需要,将其滚动到视图中,然后使用page.mouse将鼠标悬停在该元素的中心

我不确定您为什么会遇到此问题,但最简单的方法可能是重新考虑应用的用户体验-为什么您在模式中包含的内容如此之多而导致此问题?