Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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/7/python-2.7/5.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 在网站的文本框中输入数字_Python_Python 2.7_Input_Textbox - Fatal编程技术网

Python 在网站的文本框中输入数字

Python 在网站的文本框中输入数字,python,python-2.7,input,textbox,Python,Python 2.7,Input,Textbox,我正在为一个游戏创建一个脚本,因为我想自动化它的某个部分。到目前为止,我已经: import win32api, win32con, time def click(x,y): win32api.SetCursorPos((x,y)) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0) cli

我正在为一个游戏创建一个脚本,因为我想自动化它的某个部分。到目前为止,我已经:

import win32api, win32con, time
def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
click(100,655)
time.sleep(3)
click(740,580)
time.sleep(1)
raw_input(100) 
到目前为止,我点击了我需要进入的正确页面,然后我点击了文本框,在那里我可以输入一个数字,但是在选择了文本框之后,我不太明白如何输入一个数字。我本想使用raw_输入,但它却像一个print语句

该函数不会模拟对另一个程序的击键。它将要做的是将提示符打印到它的控制台,等待您键入对该控制台的响应,然后将您键入的内容返回到脚本中。在这里完全没用

你真正想要的是一种将键盘事件发送到应用程序的方式,与发送鼠标事件的方式相同


如果您可以依赖Windows脚本主机(我认为在Vista和XPSP3及更高版本中始终存在,并且可以在早期XP中安装),您可以直接使用它,而不是在低级别执行操作:

wshell = win32com.client.Dispatch("WScript.Shell")
wshell.SendKeys("foo")

否则,您将需要获得窗口的句柄(win32api文档中对此进行了解释,因此我假设您已经知道了),然后类似这样:

def sendkey(hwnd, keycode):
    win32api.PostMessage(hwnd, win32con.WM_CHAR, keycode, 0)
这将无法正确处理tab、escape或return等特殊键。为此,您需要发送
WM\u KEYDOWN
WM\u keydup
。但是对于您的使用,
WM_CHAR
是您想要的

您还需要一个函数来查找字符串中每个字符的名称。对于
'100'
来说,它实际上只是
ord('1')
ord('0')
ord('0')
,但并不是所有的事情都是这样


您可能想看看和类似的模块,它们为您总结了所有这些

或者您可能希望使用更高级别的自动化库,如(有许多这样的库,如果您进行搜索,您将找到所有这些库的详细信息)

或者,您可能想忘记尝试在鼠标单击和按键事件方面自动化浏览器,而是在适当的(web)级别使用


或者,您可能想忘记自动化浏览器,而只是使用脚本在自己的脚本中模拟浏览器。

如果您试图编写网页脚本,使用脚本或伪造浏览器可能比在浏览器上发送鼠标事件要容易得多。同时,如中所述,
raw_input(100)
实际做的是将
100
打印到控制台,等待您键入回复,然后将该回复返回到您的程序。