python - 从外部操纵 Firefox 的 View

标签 python linux firefox sh

我需要扩展一个给定的项目。我还没有找到理想的解决方案,这就是我在这里寻求帮助的原因。 在装有 Linux 的 PC 上,Firefox 以全屏模式运行,并不断显示外部页面的内容。 Firefox 的预兆大致如下:

export DISPLAY=:0.0
export START_REMOTE_CONTROL=1

startproc -s -l /dev/null -u A_USER -g A_GROUP  /PATH_TO_FIREFOX/firefox -private -url www.EXTERNAL_PAGE.com -fullscreen

此外,还有一个在 PC 上运行的管理工具,实现为 Python Django 网站。通过提供的站点,人们可以登录到本地网络并管理一些事情。

现在应该添加什么: 在执行某个操作时,由 Django Web 服务器 (localhost/SPECIAL_PAGE) 提供的站点应在上述 Firefox 中暂时显示(直到再次关闭)。 这应该通过尽可能少的改变来实现。

我对标准站点没有任何影响(在示例中 www.EXTERNAL_PAGE.com )。因此,我无法实现任何 JavaScript 创建一个到 Python Web 服务器的 websocket,我可以用它来说:“现在从 localhost/SPECIAL_PAGE 加载内容。” 我的一个想法是,Firefox 和 Django 网络服务器在同一台电脑上运行,收到命令的 Django 网络服务器可以使用带有 localhost/SPECIAL_PAGE 的 shell 命令打开一个新选项卡。 如果特殊模式已禁用,则该站点通过 Ajax 每半秒请求一次。 如果是这样,选项卡将通过 Javascript 关闭并恢复原始状态。

我在自己的电脑上尝试过这是否可行。它成功了,但我注意到以下几点:Javascript 不允许关闭它自己没有打开的选项卡。我在网上找到的所有解决方法都不适用于我的版本。 无论如何,我确实发现如果设置 dom.allow_scripts_to_close_windows 设置为 true,它确实可以工作。但这并不是一个好的解决方案,因为外部站点可能会利用这种情况。 但如果找不到更优雅的解决方案,我可以接受。

无论如何,我现在使用管理网站在项目 PC 上尝试了它。简而言之:没有成功。

我用来尝试打开 Django Web 服务器内的选项卡的代码是:

from subprocess import call
call(["/PATH_TO_FIREFOX/firefox", "-new-tab",  "localhost/SPECIAL_PAGE"])

我认为这可能与 Firefox 由 Deomon 启动有关,因此访问可能会有所不同(-u A_USER 和 -g A_GROUP 在调用 Firefox 或 Django Web 服务器时是相同的)。

有人知道哪里错了吗? 或者有人能想象出更优雅的解决方案吗?

非常感谢您的帮助。

最佳答案

通过 selenium 启动 Firefox session 将授予您在 Firefox session 运行时的完全控制权 例如:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.python.org")

使用 custom profile并在启动 Web 浏览器的计算机上运行 python 脚本(或 django 服务器)应该能够让您完成您想要做的所有事情

关于python - 从外部操纵 Firefox 的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590413/

相关文章:

php - 在后台运行 ffmpeg 以便可以更改页面

javascript - 如何从 Firefox 插件中加载文件

javascript - Webkit 和 Moz Transform,取决于浏览器

python - Bash 与 Perl/Python : OS call perfomace

python - 在 Django Rest Framework 中为每个 View 定义分页 page_size

Python Pandas DF 根据列列表创建新变量

linux - 不使用 sudo 更改 root 用户拥有的文件的权限

python - 如何使数据框全局化并在函数中使用它?

linux - Tomcat 上 Solr 的日志文件

apache - Firefox 的站点非常慢,在所有其他浏览器上都是即时的 : KeepAlive issue?