Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从外部操作firefox的视图_Python_Linux_Firefox_Sh - Fatal编程技术网

Python 从外部操作firefox的视图

Python 从外部操作firefox的视图,python,linux,firefox,sh,Python,Linux,Firefox,Sh,我需要扩展一个给定的项目。我还没有找到一个理想的解决方案,这就是为什么我在这里寻求帮助。 在装有Linux的PC上,Firefox以全屏模式运行,并不断显示外部页面的内容。关注Firefox的deomen大致如下所示: 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 ww

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

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上运行的管理工具,作为PythonDjango网站实现。通过提供的站点,人们可以登录到本地网络并管理一些事情

现在应该添加什么: 在某个特定操作中,Django Web服务器(localhost/SPECIAL_页面)提供的站点应该在提到的firefox中临时显示(直到再次关闭)。 这应该通过尽可能少的改变来实现

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

我在我自己的电脑上试过,如果这样做行得通的话。它成功了,但我注意到以下几点:Javascript不允许关闭未打开的选项卡。我在网上找到的任何解决方法都不能在我的版本上工作。 无论如何,我发现如果设置dom.allow\u scripts\u to\u close\u windows设置为true,它确实可以工作。但这不是一个好的解决方案,因为外部站点可以利用这种情况。 但如果没有更优雅的解决方案,我可以接受

不管怎样,我现在在ProjectPC上使用管理网站进行了尝试。简言之:没有成功

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

from subprocess import call
call(["/PATH_TO_FIREFOX/firefox", "-new-tab",  "localhost/SPECIAL_PAGE"])
我认为这可能与Firefox由Deomon启动有关,因此访问可能不同(-u a_USER und-g a_GROUP在调用Firefox或Django Web服务器时是相同的)

有人知道出了什么错吗? 或者有人能想象一个更优雅的解决方案吗


非常感谢您的帮助。

通过启动firefox会话将授予您在firefox会话运行时的完全控制权 例如:

from selenium import webdriver

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

在启动web浏览器的机器上使用并运行python脚本(或django服务器)应该可以让您完成所有您想做的事情

谢谢您提供的信息。但是我想避免使用新软件。如果我们没有找到其他解决方案,我可以试试。