• 第一个UI脚本--python+selenium


    之前一直是用java+selenium做自动化测试的,最近因为工作需要,需要用pyhton+selenium去实现,于是就赶驴上架,熟悉了一下python的语法和脚本的编写过程,下面是一个简单的脚本,但是基本涵盖了目前UI端比较常见的对象的识别和操作,比如输入框,按钮,下拉框,radio, checkbox, 链接, 鼠标脚本的操作以及脚本中js的使用。

    上代码吧:

    # coding = utf-8
    from selenium import webdriver
    from selenium.webdriver.support.ui import Select
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.ui import WebDriverWait
    import time
    
    driver=webdriver.Firefox()
    driver.maximize_window()
    driver.get('c:\test.html')
    def button():
        btn=driver.find_element_by_id('user')
        btn.send_keys('hello')
        print('finish')
        driver.close()
    
    def select():#se=driver.find_element_by_name('select')
        #se.find_element_by_xpath('//option[@value="audi"]').click
    
        se=Select(driver.find_element_by_name('select'))
        se.select_by_value('audi')
        se.select_by_index(2)
        time.sleep(5)
    
    def link():
        lk=driver.find_element_by_class_name('baidu')
        lktext=lk.get_attribute('text')
        print(lktext)
        lk.click()
    
    def checkbox():
        ck=driver.find_element_by_name('checkbox1')
        checked=ck.get_attribute('checked')
        print(checked)
        ck.click()
    
    def submit():
        st=driver.find_element_by_class_name('button')
        js='var st=document.getElementsByName("button");st.click()'
        driver.execute_script(js)
    
    def js():
        input=driver.find_element_by_id('user')
        driver.execute_script('arguments[0].value="123"',input)
    
    def alert():
        al=driver.find_element_by_class_name('alert')
        al.click()
        alert=driver.switch_to_alert()
        print alert.__getattribute__('text')
        time.sleep(5)
        alert.accept()
        #alert.dismiss()
    
    def switch():
        #switch_to_window, switch_to_frame
        #current_window_handle, window_handles
        newwin=driver.find_element_by_class_name('open')
        newwin.click()
        time.sleep(3)
        current=driver.current_window_handle
        allhandle=driver.window_handles
        for hd in allhandle:
            print hd
        driver.switch_to_window(allhandle[1])
    
        time.sleep(3)
        driver.switch_to_window(allhandle[0])
    
    def action():
        el=driver.find_element_by_class_name('over')
        ActionChains(driver).move_to_element(el).perform()
        time.sleep(3)
        el2=driver.find_element_by_id('over')
        #print(el2.get_attribute('text'))
    
    def wait():
        driver.implicitly_wait(5)
        driver.find_element_by_class_name('over')
    
        WebDriverWait(driver,5).until(lambda driver:driver.find_element_by_class_name('open').is_displayed())
    
    
    if __name__=='__main__':
        wait()

    这个主要是对元素的操作,脚本中并未涉及到断言和报告的收集,后面补上这块的。

  • 相关阅读:
    linux process management
    intel edison with grove lcd
    ODBC、OLEDB和ADO关系
    在线并使用数据库来推断在线
    大约laravel错误的解决方案
    cocos2dx-3.1加入cocosStudio参考库 libCocosStudio
    【甘道夫】基于Mahout0.9+CDH5.2执行分布式ItemCF推荐算法
    格式字符串分配stl::string
    希望开发一个指针的元素
    [Now] Configure secrets and environment variables with Zeit’s Now
  • 原文地址:https://www.cnblogs.com/jingwei/p/5039416.html
Copyright © 2020-2023  润新知