当前位置:嗨网首页>书籍在线阅读

34-第4步_处理选择列表和单选按钮

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第4步:处理选择列表和单选按钮

“wizard powers”问题的下拉列表和Robocop字段的单选按钮处理起来比文本框输入需要更多技巧。要用鼠标点选这些选项,你必须搞清楚每个可能选项的x、y坐标。然而,用箭头键来选择会比较容易。

在程序中加入以下代码:

#! python3
# formFiller.py - Automatically fills in the form.
--snip--
 # Fill out the Source of Wizard Powers field.
 ❶ if person['source'] == 'wand':
 ❷ pyautogui.write(['down', '\t'] , 0.5) 
 elif person['source'] == 'amulet':
 pyautogui.write(['down', 'down', '\t'] , 0.5) 
 elif person['source'] == 'crystal ball':
 pyautogui.write(['down', 'down', 'down', '\t'] , 0.5) 
 elif person['source'] == 'money':
 pyautogui.write(['down', 'down', 'down', 'down', '\t'] , 0.5)
 # Fill out the RoboCop field.
 ❸ if person['robocop'] == 1:
 ❹ pyautogui.write([' ', '\t'] , 0.5)
 elif person['robocop'] == 2:
 pyautogui.write(['right', '\t'] , 0.5)
 elif person['robocop'] == 3:
 pyautogui.write(['right', 'right', '\t'] , 0.5)
 elif person['robocop'] == 4:
 pyautogui.write(['right', 'right', 'right', '\t'] , 0.5)
 elif person['robocop'] == 5:
 pyautogui.write(['right', 'right', 'right', 'right', '\t'] , 0.5)
--snip--

在下拉列表获得焦点后(回忆一下,你写了代码,在填充Greatest Fear(s)输入框后模拟了按Tab键),按向下键,就会移动到选择列表的下一项。根据 person['source'] 中的值,你的程序知道应该发出几次按向下键的命令,然后切换到下一个输入区。如果这个用户词典中的 'source' 键的值是 'wand' ❶,我们模拟按向下键一次(选择Wand),并按Tab键❷。如果 'source' 键的值是 'amulet' ,模拟按向下键两次,并按Tab键。对其他可能的值也是类似的。

Robocop问题的单选按钮,可以用向右键来选择。或者,如果你想选择第一个选项❸,就按空格键❹。