我正在使用Selenium来自动化网站。首先,我用C#打开主网站。 然后,我手动点击从主站点打开新窗口。现在,我想刮掉这些新窗口的数据。这不是问题。问题在于Selenium似乎需要一个窗口来集中来刮掉它。我在刮擦前使用SwitchTo方法。当您切换时,新窗口会弹出到前面并从其他窗口窃取焦点。有没有办法在没有聚焦的情况下刮擦窗户?
答案 0 :(得分:1)
说“Selenium在抓页时需要关注”是最简单的过度简化,如果是最坏的责任则完全错误分配。 Selenium用于自动化页面的驱动程序是否需要关注,这在很大程度上取决于驱动程序的实现。您还没有说过您正在使用的浏览器,但如果是Chrome或Firefox,则这些实施工具由浏览器供应商(分别为Google和Mozilla)创建和维护。
两种情况都有其他选择,因为两种浏览器都正式支持“无头”模式,可与Selenium一起使用。但请注意,使用该模式需要您自动执行当前手动执行的步骤。
答案 1 :(得分:0)
直接回答,否 Selenium无法在没有所需焦点的情况下刮擦窗户。
之内
Selenium
不仅需要关注。您打算与之互动的WebElements
需要在Viewport
根据您的评论,如果您想要使用不需要关注的Selenium替代方案,那么答案是Beautiful Soup
通过 Selenium Python Clients
使用 {{ 1}} 模块。