刮掉Selenium Webdriver窃取焦点

时间:2017-12-04 10:51:08

标签: c# selenium

我正在使用Selenium来自动化网站。首先,我用C#打开主网站。 然后,我手动点击从主站点打开新窗口。现在,我想刮掉这些新窗口的数据。这不是问题。问题在于Selenium似乎需要一个窗口来集中来刮掉它。我在刮擦前使用SwitchTo方法。当您切换时,新窗口会弹出到前面并从其他窗口窃取焦点。有没有办法在没有聚焦的情况下刮擦窗户?

2 个答案:

答案 0 :(得分:1)

说“Selenium在抓页时需要关注”是最简单的过度简化,如果是最坏的责任则完全错误分配。 Selenium用于自动化页面的驱动程序是否需要关注,这在很大程度上取决于驱动程序的实现。您还没有说过您正在使用的浏览器,但如果是Chrome或Firefox,则这些实施工具由浏览器供应商(分别为Google和Mozilla)创建和维护。

两种情况都有其他选择,因为两种浏览器都正式支持“无头”模式,可与Selenium一起使用。但请注意,使用该模式需要您自动执行当前手动执行的步骤。

答案 1 :(得分:0)

直接回答, Selenium无法在没有所需焦点的情况下刮擦窗户。

  

Selenium 不仅需要关注。您打算与之互动的 WebElements 需要在Viewport

之内

更新

根据您的评论,如果您想要使用不需要关注的Selenium替代方案,那么答案是Beautiful Soup通过 Selenium Python Clients 使用 {{ 1}} 模块。