【pytest框架之web自动化测试】--【ActionChains】selenium中模拟键盘输入的方法

keys.py中提供多种键盘关键字符输入

class Keys(object):
    """
    Set of special keys codes.
    """

    NULL = '\ue000'
    CANCEL = '\ue001'  # ^break
    HELP = '\ue002'
    BACKSPACE = '\ue003'
    BACK_SPACE = BACKSPACE
    TAB = '\ue004'
    CLEAR = '\ue005'
    RETURN = '\ue006'
    ENTER = '\ue007'
    SHIFT = '\ue008'
    LEFT_SHIFT = SHIFT
    CONTROL = '\ue009'
    LEFT_CONTROL = CONTROL
    ALT = '\ue00a'
    LEFT_ALT = ALT
    PAUSE = '\ue00b'
    ESCAPE = '\ue00c'
    SPACE = '\ue00d'
    PAGE_UP = '\ue00e'
    PAGE_DOWN = '\ue00f'
    END = '\ue010'
    HOME = '\ue011'
    LEFT = '\ue012'
    ARROW_LEFT = LEFT
    UP = '\ue013'
    ARROW_UP = UP
    RIGHT = '\ue014'
    ARROW_RIGHT = RIGHT
    DOWN = '\ue015'
    ARROW_DOWN = DOWN
    INSERT = '\ue016'
    DELETE = '\ue017'
    SEMICOLON = '\ue018'
    EQUALS = '\ue019'

    NUMPAD0 = '\ue01a'  # number pad keys
    NUMPAD1 = '\ue01b'
    NUMPAD2 = '\ue01c'
    NUMPAD3 = '\ue01d'
    NUMPAD4 = '\ue01e'
    NUMPAD5 = '\ue01f'
    NUMPAD6 = '\ue020'
    NUMPAD7 = '\ue021'
    NUMPAD8 = '\ue022'
    NUMPAD9 = '\ue023'
    MULTIPLY = '\ue024'
    ADD = '\ue025'
    SEPARATOR = '\ue026'
    SUBTRACT = '\ue027'
    DECIMAL = '\ue028'
    DIVIDE = '\ue029'

    F1 = '\ue031'  # function  keys
    F2 = '\ue032'
    F3 = '\ue033'
    F4 = '\ue034'
    F5 = '\ue035'
    F6 = '\ue036'
    F7 = '\ue037'
    F8 = '\ue038'
    F9 = '\ue039'
    F10 = '\ue03a'
    F11 = '\ue03b'
    F12 = '\ue03c'

    META = '\ue03d'
    COMMAND = '\ue03d'

  

 

 

 

 示例:

在http://sahitest.com/demo/label.htm第一个输入框输入
test_keyboard_case1 空格test_keyboard_case2 并删掉2
class Testmove:
    def setup(self):
       self.driver= webdriver.Chrome()
       self.driver.get('http://sahitest.com/demo/label.htm') #鼠标移动
       self.driver.maximize_window()
       self.driver.implicitly_wait(5)  #隐式等待

    def teardown(self):
        self.driver.quit()
    def test_keyboard_case(self):
        action=ActionChains(self.driver)
        input1=self.driver.find_element(By.XPATH,'/html/body/label[1]/input').click()
        #input2 = self.driver.find_element(By.XPATH, '/html/body/label[2]/table/tbody/tr/td[2]/input')
        action.send_keys('test_keyboard_case1').pause(1)
        action.send_keys(Keys.SPACE).pause(1)
        action.send_keys('test_keyboard_case2').pause(1)
        action.send_keys(Keys.BACKSPACE).perform() #键盘删除一个字符
        time.sleep(2)

  

posted @ 2021-02-25 14:01  第五个季节xjw  阅读(239)  评论(0)    收藏  举报