我尝试通过python中的ctypes包为selenium webdriver进行键盘印刷模拟的上传方案。使用安装了Windows 8.1的本地机器可以正常工作。
但是当我在我的开发服务器中运行相同的代码时,这是一个Linux机箱,它将调用Windows 7操作系统的远程机器,我得到的错误就像在我的代码的这一部分找不到windll
def SendInput(*inputs):
nInputs = len(inputs)
LPINPUT = INPUT * nInputs
pInputs = LPINPUT(*inputs)
cbSize = ctypes.c_int(ctypes.sizeof(INPUT))
return ctypes.windll.user32.SendInput(nInputs, pInputs, cbSize)
所以我确实将我的代码更改为if else语句,该语句提示操作系统是否是Windows以上的代码片段,请转到下面的代码片段,
cdll.LoadLibrary("libc.so.6")
Xtst = cdll("libXtst.so.6")
Xlib = cdll("libX11.so.6")
dpy = Xtst.XOpenDisplay(None)
def SendInput(txt):
for c in txt:
sym = Xlib.XStringToKeysym(c)
code = Xlib.XKeysymToKeycode(dpy, sym)
Xtst.XTestFakeKeyEvent(dpy, code, True, 0)
Xtst.XTestFakeKeyEvent(dpy, code, False, 0)
Xlib.XFlush(dpy)
但是在添加这个之后我在我的linux框中遇到错误,如
TypeError: 'LibraryLoader' object is not callable.
我确实通过互联网搜索资源,但我无法获得它们。有人可以帮助我完成它。