问题描述
我有一个 Python 程序,它使用 APScheduler 和 Selenium 来自动化网页抓取。基本上它每小时抓取一次特定的网站,然后每隔一段时间安排某些更详细的抓取。
问题是,虽然我想启动刮板,然后可以自由地使用我的计算机进行其他工作,但每当 APScheduler 启动新的刮板时,Selenium 将自动关注打开的 chrome 选项卡。因此,我试图找到一种方法来打开新的 chrome 窗口 - 但我不必专注于它们。我已经尝试过 headless 和 phantomJS,但该站点是动态生成的,因此这些都不起作用。
我目前的解决方案是打开新窗口,将其最小化,然后立即切换回旧窗口。为此,我想使用 ActionChains 执行键盘快捷键。我目前有这个测试代码:
driver = webdriver.Chrome(ChromeDriverManager().install())
ActionChains(driver).key_down(Keys.CONTROL)
ActionChains(driver).send_keys(Keys.RIGHT)
ActionChains(driver).key_up(Keys.CONTROL)
目前这段代码什么都不做。有没有什么办法解决这一问题?我正在使用 Jupyter Notebook,我使用的是 Mac 以供参考。
注意:此代码与主程序分开运行,我只是用它来测试脚本是否可以工作。
解决方法
试试这个。你永远不会 .perform() 它。
ActualWidth