zoukankan      html  css  js  c++  java
  • Python3入门 Python3+Selenium做UI页面测试的学习

    https://ke.qq.com/course/310732

    一直计划着系统地看看Python3,这两天不用加班了,在网上下了些资源,自己演练一番。

    Python3标识符
    保留字,直接命令行中可以查看当前版本的保留字

    我用的是PyCharm,保留字截图不全面,复制如下:

    PyDev console: starting.
    Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
    import keyword
    keyword.kwlist
    ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue',
    'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in',
    'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

     

    Python中以#标识注释 需要注意的是Python中很注重缩进,同一个代码块不需要使用{}而是通过相同的缩进表示

    Python中的字符串前缀操作需要说明一下,r"hello world " 其中 并不显示为制表符,仅仅以 形式显示

    命令行中可以使用python3 test.py运行程序

    if、while、elif、else、class等与java的不同:后面跟的不是{而是:


    Python中的注释:
    单行注释
    #
    多行注释
    '''或"""即三个连续的单引号或双引号

     

    import os
    from time import strftime, localtime
    from selenium import webdriver
    
    chromedriver = ".Toolschromedriver.exe"
    url2 = "https://m.zhipin.com/weijd/v2/job/1665531fe50fa0ea1XJ90tq1GVo~"
    url3="https://m.zhipin.com/weijd/v2/job/c31807a4e76cddb21Xd-2tS0EFU~"
    url1 = "https://yijiauat.acxiom.com.cn/Kiosk_Coupon/coup/"
    url4="https://m.zhipin.com/weijd/v2/job/018cf113ffaf15ac1XF42Ny9FFA~"
    url="https://m.zhipin.com/weijd/v2/job/0b96886ea49af6e21nF72ti5EFc~"
    os.environ["webdriver.chrome.driver"] = chromedriver
    driver = webdriver.Chrome(chromedriver)
    driver.get(url)
    driver.maximize_window()
    driver.implicitly_wait(10)
    print("======标题是"+driver.title)
    print("======URL是"+driver.current_url)
    #注释 print("======页面元素是"+driver.page_source)
    print(driver.get_window_size())
    time =strftime('%Y%m%d%H%M%S',localtime())
    '''print(time)注释'''
    """print(time)注释"""
    print(time)
    driver.get_screenshot_as_file(".\ScreenShot\file_"+time+".png")
    print(driver.get_window_position())
    
    print (driver.find_element_by_css_selector ("div.boss-message").text)
    print(driver.find_element_by_css_selector("p.name").text +"   薪资水平: "+driver.find_element_by_css_selector("p.salary").text)
    
    
    print (driver.find_element_by_class_name ("detail-text").text)
    
    print ("------职位信息结束------------")
    driver.quit ()
    

      

     Selenium函数

    在Selenium包下,webdriver/remote/webdriver.py

     

    实例:
    
    7.1通过id属性定位元素
    #号表示通过id属性来定位元素
    find_element_by_css_selector("#kw")
    
    7.2通过class属性定位元素
    .号表示通过class属性来定位元素
    find_element_by_css_selector(".s_ipt")
    
    7.3通过标签名定位元素
    find_element_by_css_selector("input")
    
    7.4通过属性定位元素(挺常用的)
    find_element_by_css_selector("[name='wd']")
    find_element_by_css_selector("[maxlength='255']")
    属性值包含某个值
    属性值包含wd:适用于由空格分隔的属性值。
    find_element_by_css_selector("[name~='wd']")
    
    7.5父子定位元素
    查找有父亲元素的标签名为span,它的所有标签名叫input的子元素
    find_element_by_css_selector("span>input") 
    
    7.6组合定位元素
    标签名#id属性值:指的是该input标签下id属性为kw的元素
    find_element_by_css_selector("input#kw")
    标签名.class属性值:指的是该input标签下class属性为s_ipt的元素
    find_element_by_css_selector("input.s_ipt")
    标签名[属性=’属性值‘]:指的是该input标签下name属性为wd的元素
    find_element_by_css_selector("input[name='wd']")
    父元素标签名>标签名.class属性值:指的是span下的input标签下class属性为s_ipt的元素
    find_element_by_css_selector("span>input.s_ipt")
    
     
    
    多个属性组合定位元素(挺常用的)
    指的是input标签下id属性为kw且name属性为wd的元素
    find_element_by_css_selector("input.s_ipt[name='wd']")
    指的是input标签下name属性为wd且maxlength为255的元素
    find_element_by_css_selector("input[name='wd'][maxlength='255']")
    
     
    
    比较复杂的CSS定位可查看
    http://www.360doc.com/content/13/1105/10/11675837_326750173.shtml
    http://www.360doc.com/content/13/1105/10/11675837_326750240.shtml
    
     
    
    比较懒惰的方法:
    使用搜狐浏览器的firebug工具,复制CSS路径,不过这种方式对层级要求高,到时候自己再修改下。
     
    
    from time import strftime, localtime
    import time
    print(time.time())
    time1=strftime('%Y-%m-%d %H:%M:%S', localtime())
    time2 = strftime('%Y%m%d%H%M%S', localtime())
    time3 = strftime('%y%m%d%H%M%S', localtime())
    time4 = strftime('%Z %X %y%m%d%H%M%S', localtime())
    time5 = strftime('"%a %b %d %H:%M:%S %Y', localtime())
    print(localtime())
    print(time1)
    print(time2)
    print(time3)
    print(time4)
    print(time5)
    
    '''
    1537942227.6411319
    time.struct_time(tm_year=2018, tm_mon=9, tm_mday=26, tm_hour=14, tm_min=10, tm_sec=27, tm_wday=2, tm_yday=269, tm_isdst=0)
    2018-09-26 14:10:27
    20180926141027
    180926141027
    China Standard Time 14:10:27 180926141027
    "Wed Sep 26 14:10:27 2018
    '''
    
    
    """
    python中时间日期格式化符号:
    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12) 
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称%% %号本身  
    
    """
    
    from time import strftime, localtime
    import time
    print(time.time())
    time1=strftime('%Y-%m-%d %H:%M:%S', localtime())
    time2 = strftime('%Y%m%d%H%M%S', localtime())
    time3 = strftime('%y%m%d%H%M%S', localtime())
    time4 = strftime('%Z %X %y%m%d%H%M%S', localtime())
    time5 = strftime('"%a %b %d %H:%M:%S %Y', localtime())
    print(localtime())
    print(time1)
    print(time2)
    print(time3)
    print(time4)
    print(time5)
    
    '''
    1537942227.6411319
    time.struct_time(tm_year=2018, tm_mon=9, tm_mday=26, tm_hour=14, tm_min=10, tm_sec=27, tm_wday=2, tm_yday=269, tm_isdst=0)
    2018-09-26 14:10:27
    20180926141027
    180926141027
    China Standard Time 14:10:27 180926141027
    "Wed Sep 26 14:10:27 2018
    '''
    
    
    """
    python中时间日期格式化符号:
    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12) 
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称%% %号本身  
    
    """
    

      

  • 相关阅读:
    Navicat 创建mysql存过、定时执行存过
    windows 系统 MySQL_5.6.21安装教程
    ldf和mdf文件怎么还原到sqlserver数据库
    免安装的tomcat转服务
    关掉IE提示“当前安全设置会使计算机有风险”
    U盘制作系统启动盘方法
    Tomcat窗口标题,中文乱码解决方法
    MyEclipse10安装SVN插件
    IE浏览器的卸载操作
    739. Daily Temperatures 每日温度
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/9633807.html
Copyright © 2011-2022 走看看