LibraryLoader对象不可调用typeerror - python cdll - ctypes包

时间:2016-09-07 02:28:39

标签: python linux selenium ctypes

我尝试通过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.

我确实通过互联网搜索资源,但我无法获得它们。有人可以帮助我完成它。

0 个答案:

没有答案