从python sh发送javascript命令

2024-04-19 08:44:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个装置,确切地说是一个由四个可编程的插座组成的电路板。设备与pc机的接口是通过TCP/IP端口。该设备具有web浏览器用户界面,可通过本地IP地址访问。在

在界面的HTML页面上有Javascript代码,我认为这会使页面具有交互性,并定义页面的行为。首先,我可以从Python发送Javascript命令来使用web接口切换套接字(如果我有从Python打开的服务器的TCP/IP连接),因此,为此,我需要在pythonshell中调用Javascript函数。怎么做?其次,在本例中,我是否需要comet,因为我需要将Javascript命令从Python推送到特定的IP和端口。在

下面是我的python代码:

import socket 
import time 
TCP_IP = 'xxx.xxx.y.zzz' 
TCP_PORT = wwww 
MESSAGE1 = "xxx.xxx.y.zzz/"; 
MESSAGE2 = "javascript: ChangeState('1')" 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((TCP_IP, TCP_PORT)) 
s.send(MESSAGE1)
s.send(MESSAGE2) 
s.close() 

这是javascript函数:

^{pr2}$

Tags: 端口函数代码import命令ipwebport
1条回答
网友
1楼 · 发布于 2024-04-19 08:44:09

我建议使用Selenium及其Python bindings,这将允许您从Python控制浏览器实例。这将使您能够单击按钮或从Python脚本调用Javascript函数。在

您的脚本将包含如下代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://xx.yy.zz")
elem = driver.find_element_by_name("interesting_button")
elem.send_keys(Keys.RETURN)

这会给你一个解决办法。不过,这有点老套。更优雅的解决方案是找出Javascript函数在幕后做什么。它们可能会调用其他代码,或者向侦听器发送消息。制造商可能有一个API,它允许您使用像urllib这样的Python库来调用API。或者,他们可能有关于如何通过RS-232(串行)与设备通信的规范。我试着用谷歌搜索设备的品牌/型号,看看会有什么结果。在

相关问题 更多 >