微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Felen焦点在Selenium chrome浏览器中

我正在使用Selenium从网站上抓取数据.该网站需要窗口焦点,以显示我需要的某些元素.

我希望能够在后台运行我的程序,而不必在窗口运行时对其进行聚焦.

有没有办法欺骗网站认为它专注于?

我正在使用硒铬驱动器.

编辑:Here’s a quick and dirty test I built.

查看代码on GitHub

收到window.onblur事件后,网站背景颜色将变为黑色,并在收到window.onfocus事件时返回白色.

我想假装那些事件,让浏览器认为它已经收到了焦点事件.

解决方法:

由于页面通过窗口对象中的onfocus和onblur回调获取焦点信息,因此您可以自己调用它们.

browser.execute_script("window.onfocus()")
browser.execute_script("window.onblur()")

为了好玩,试试这个脚本:

from selenium import webdriver
import time

chromedriver = "./chromedriver"
browser = webdriver.Chrome(executable_path = chromedriver)

browser.get('http://anubiann00b.github.io/FocusTest/')

while True:
    browser.execute_script("window.onfocus()")
    time.sleep(1)
    browser.execute_script("window.onblur()")
    time.sleep(1)

当然,如果你想让浏览器认为它始终是聚焦的,那么让onblur方法调用onfocus方法

browser.execute_script("window.onblur = function() { window.onfocus() }")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐