轻松实现自动化

2023-10-08 01:44

本节亮点:

  • l 键盘按键使用
  • l 键盘组合键用法
  • l send_keys() 输入汉字报错

键盘按键用法:

#编码=utf-8
来自导入网络驱动程序
fromselenium.webdriver.common.keys importKeys #需要引入keys包 
导入操作系统,时间

驱动程序 = webdriver.Firefox()
driver.get("http://m.gsm-guard.net/login/?referrer=http%3A%2F%m.gsm-guard.net%2F")

时间.睡眠(3)
driver.maximize_window() # 浏览器全屏显示

driver.find_element_by_id("用户名").clear()
driver.find_element_by_id("用户名").send_keys("fnngj" )

#tab的定位和清除密码框的默认提示信息类似,相当于上面的clear()
driver.find_element_by_id("用户名").send_keys(m.gsm-guard.net)
时间.睡眠(3)
driver.find_element_by_id("user_pwd").send_keys("123456")#通过找到密码框替换登录按钮并输入 (Enter)
driver.find_element_by_id("user_pwd").send_keys(Keys.ENTER)
'''
#你也可以找到登录按钮并使用回车而不是click()
driver.find_element_by_id("登录").send_keys(Keys.ENTER)
'''
时间.睡眠(3)

时间.睡眠(3)
driver.quit()

调用键盘按键操作,需要引入keys包:

从 selenium.webdriver.common.keys 导入密钥

通过 send_keys() 呼叫按键:

send_keys(m.gsm-guard.net) # TAB

send_keys(Keys.ENTER) # Enter

:该操作与页面元素的遍历顺序有关。如果当前位于账号输入框,按键盘上的tab键遍历密码框,将无法输入密码。如果输入密码后还需要填写验证码,那么按回车键不会有登录的效果。

这不是一个好方法,它只是验证单个密钥的使用情况

键盘组合键用法:

#编码=utf-8
来自导入网络驱动程序
来自selenium.webdriver.common.keys导入导入操作系统,时间

驱动程序 = webdriver.Firefox()driver.get("http://m.gsm-guard.net")

#在输入框中输入内容
driver.find_element_by_id("kw").send_keys("" )
时间.睡眠(3)

#ctrl+a 选择所有输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
时间.睡眠(3)

#ctrl+x 剪切输入框的内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
时间.睡眠(3)

#在输入框中重新输入内容,搜索
driver.find_element_by_id("kw").send_keys(u"崇实cnblogs")
driver.find_element_by_id("su").click()

时间.睡眠(3)
driver.quit()

以上操作没有实际意义,但是向我们演示了键盘组合键的使用。

输入中文问题

顺便解决了一直困扰我的一个文件输入问题。 selenium2 python我在send_keys()中输入中文时总是出错。其实,在前面加上一个小u就可以解决问题:

send_keys(u"输入中文")

基本上键盘上的所有按键都可以模拟

模块:selenium.webdriver.common.keys
• 类Keys()
– NULL = u'ue000'
– 取消 = u'ue001' # ^break
– 帮助 = u'ue002'
– BACK_SPACE = u'ue003'
– TAB = u'ue004'
– 清除 = u'ue005'
– 返回 = u'ue006'
– 回车 = u'ue007'
– SHIFT = u'ue008'
– LEFT_SHIFT = u'ue008' # 别名
– 控制 = u'ue009'
– LEFT_CONTROL = u'ue009' # 别名
– ALT = u'ue00a'
– LEFT_ALT = u'ue00a' # 别名
– 暂停 = u'ue00b'
– 退出 = u'ue00c'
– 空间 = u'ue00d'
– PAGE_UP = u'ue00e'
– PAGE_DOWN = u'ue00f'
– 结束 = u'ue010'
– HOME = u'ue011'
– 左 = u'ue012'
– ARROW_LEFT = u'ue012' # 别名
- UP = u'ue013'
– ARROW_UP = u'ue013' # 别名
– 右 = u'ue014'
– ARROW_RIGHT = u'ue014' # 别名
– 向下 = u'ue015'
– ARROW_DOWN = u'ue015' # 别名
– 插入= u'ue016'
– 删除 = u'ue017'
– 分号 = u'ue018'
– 等于 = u'ue019'
– NUMPAD0 = u'ue01a' # 数字键盘
– NUMPAD1 = u'ue01b'
– NUMPAD2 = u'ue01c'
– NUMPAD3 = u'ue01d'
– NUMPAD4 = u'ue01e'
– NUMPAD5 = u'ue01f'
– NUMPAD6 = u'ue020'– NUMPAD7 = u'ue021'
– NUMPAD8 = u'ue022'
– NUMPAD9 = u'ue023'
– 乘= u'ue024'
– 添加 = u'ue025'
– 分隔符 = u'ue026'
– 减= u'ue027'
– 十进制 = u'ue028'
– 除法 = u'ue029'
– F1 = u'ue031' # 功能键
– F2 = u'ue032'
– F3 = u'ue033'
– F4 = u'ue034'
– F5 = u'ue035'
– F6 = u'ue036'
– F7 = u'ue037'
– F8 = u'ue038'
– F9 = u'ue039'
– F10 = u'ue03a'
– F11 = u'ue03b'
– F12 = u'ue03c'
– META = u'ue03d'
– 命令 = u'ue03d'

----------------------------------------

了解更多硒内容:

“功能检查自动化”汇总