• python selenium自动化测试模块


    驱动下载地址

    https://registry.npmmirror.com/binary.html?path=chromedriver/

    pip安装

    pip install selenium

    样例

    #-*- coding:utf-8 -*-
    import platform
    import time
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    headers='''user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22;
    CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"'''
    base_url="https://www.baidu.com" options = webdriver.ChromeOptions() options.add_argument(headers) # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 if platform.system().upper()=="LINUX": path="/home/boye/project/seleniumCode/chromedriver" options.add_argument('--headless') driver = webdriver.Chrome(executable_path=path,chrome_options=options) else: driver = webdriver.Chrome(chrome_options=options) driver.implicitly_wait(10) # seconds driver.get(base_url) #打开网页 print(driver.title) time.sleep(2) driver.quit()

    元素操作

    #元素定位
    find_element                         #通过指定方法查找指定的一个元素(需指定两个参数)
    find_element_by_class_name           #通过Class name查找指定的一个元素
    find_element_by_css_selector         #通过CSS选择器查找指定的一个元素
    find_element_by_id                   #通过ID查找指定的一个元素
    find_element_by_link_text            #通过链接文本获取指定的一个超链接(精确匹配)
    find_element_by_name                 #通过Name查找指定的一个元素
    find_element_by_partial_link_text    #通过链接文本获取指定的一个超链接(模糊匹配)
    find_element_by_tag_name             #通过标签名查找指定的一个元素
    find_element_by_xpath                #通过Xpath语法来指定的一个元素
    find_elements                        #通过指定方法查找所有元素(需指定两个参数)
    find_elements_by_class_name          #通过Class name查找所有元素
    find_elements_by_css_selector        #通过CSS选择器查找所有元素
    find_elements_by_id                  #通过ID查找所有元素
    find_elements_by_link_text           #通过链接文本获取所有超链接(精确匹配)
    find_elements_by_name                #通过Name查找所有元素
    find_elements_by_partial_link_text   #通过链接文本获取所有超链接(模糊匹配)
    find_elements_by_tag_name            #通过标签名查找所有元素
    find_elements_by_xpath               #通过Xpath语法来查找所有元素
    
    
    #控制浏览器操作
    driver.set_window_size(480, 800) #控制浏览器窗口大小
    driver.back() # 后退
    driver.forward() # 前进
    driver.refresh() # 刷新
    
    #点击和输入
    driver.find_element_by_id("kw").clear() # 清除文本 
    driver.find_element_by_id("kw").send_keys("seleniumm") # 模拟按键输入
    driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE) # 删除多输入的一个 m 
    driver.find_element_by_id("su").click() # 单击元素
    
    #常用的键盘操作
    send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
    send_keys(Keys.SPACE) 空格键(Space)
    send_keys(Keys.TAB) 制表键(Tab)
    send_keys(Keys.ESCAPE) 回退键(Esc)
    send_keys(Keys.ENTER) 回车键(Enter)
    send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
    send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
    send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
    send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
    send_keys(Keys.F1) 
    
    #切换窗口
    driver.switch_to_window("windowName")
    driver.switch_to_frame("frameName")
    
    #文件上传
    driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')  # # 定位上传按钮,添加本地文件
    
    #cookie操作
    get_cookies(): 获得所有cookie信息
    get_cookie(name): 返回字典的key为“name”的cookie信息
    add_cookie(cookie_dict) : 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值
    
    #调用JavaScript代码
    js="window.scrollTo(100,450);"
    driver.execute_script(js) # 通过javascript设置浏览器窗口的滚动条位置
    
    
    #窗口截图
    driver.get_screenshot_as_file("D:\\baidu_img.jpg") # 截取当前窗口,并指定截图图片的保存位置
    
    关闭浏览器
    close() 关闭单个窗口
    quit() 关闭所有窗口
  • 相关阅读:
    s3c2440——按键中断
    s3c2440——swi异常
    S3C2440的七种模式之——未定义模式(去掉bl print1 bug解决)
    Entity Framework DBContext 增删改查深度解析
    Git换行符是如何精确控制的
    Entity Framework 乐观并发处理
    Session, Token and SSO 有什么区别
    2017让我受益最大的那些书--别找了,都在这里
    GDB scheduler-locking 命令详解
    Java web servers 间是如何实现 session 同步的
  • 原文地址:https://www.cnblogs.com/boye169/p/16027390.html
Copyright © 2020-2023  润新知