zoukankan      html  css  js  c++  java
  • web自动化的高级操作

    1、下拉列表

    # 导入select模块 
    from selenium.webdriver.support.select import Select
    # 获取指定元素 
    select_loc = (By.XPATH,'//select[@name="ft"]')
    # 等待指定元素出现WebDriverWait(driver,20).until(EC.visibility_of_element_located(select_loc))
    # 获取下拉元素
    ele = driver.find_element(*select_loc)
    # 创建select对象
    s = Select(ele)
    # 下标方式选元素
    s.select_by_index(3)
    # value属性选元素
    s.select_by_value("all")
    # 文本内容选元素
    s.select_by_visible_text("Adobe Acrobat PDF (.pdf)")    

    2、Enter按键操作

    # 导入按键模块
    from selenium.webdriver.common.keys import Keys
    # 操作按键 
    driver.find_element_by_id("kw").send_keys("潇潇",Keys.ENTER)

    3、js操作日期框

    # 修改js的值 
    js_pha = """
      var a = document.getElementById("train_date");
      a.readOnly = false;
      a.value = "2019-10-10";
      """
    # 执行js语句
    driver.execute_script(js_pha)

    4、js操作滚动条

    # 移动到元素element对象的“底端”与当前窗口的“底部”对齐  
    driver.execute_script("arguments[0].scrollIntoView(false);",element)
    # 移动到元素element对象的“顶端”与当前窗口的“顶部”对齐  
    driver.execute_script("arguments[0].scrollIntoView();",element)
    # 移动到页面底部
    driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
    # 移动到页面顶部:
    driver.execute_script("window.scrollTo(document.body.scrollHeight,0)")
    # 找到我要滚动到可见区域的元素
    loc = (By.XPATH,'//a[text()="-软件测试论坛-测试人才交流社区"]')
    WebDriverWait(driver,20).until(EC.visibility_of_element_located(loc))
    element = driver.find_element(*loc)
    # 执行js的函数
    # 因顶部有遮罩层,所以与可见区域的底部对齐。
    driver.execute_script("arguments[0].scrollIntoView(false);",element)

    5、窗口切换

    # 获取元素
    loc = (By.XPATH,'')
    # 获取当前窗口数量
    cur_handles = driver.window_handles
    # 操作元素导致出现新的窗口
    driver.find_element(*loc).click()
    # 等待新的窗口出现
    WebDriverWait(driver,20).until(EC.new_window_is_opened(cur_handles))
    # 获取当前所有窗口
    wins = driver.window_handles
    # 切换窗口 
    driver.switch_to.window(wins[-1])

    6、iframe切换

    # 等待iframe出现并切换窗口
    WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,'//iframe[@name="login_frame_qq"]')))

    7、alert弹窗处理

    # 做一个操作,导致alert框出现
    driver.find_element_by_id("press_me").click()
    # 等待alert出现并直接切换到alert弹窗
    alert = WebDriverWait(driver,10).until(EC.alert_is_present())
    # 点击确定,关闭弹框
    alert.accept()

    8、上传操作

    # 导入win32库
    import win32gui
    import win32con
    # 前提 :windows上传窗口已经出现。sleep1-2秒等待弹出的出现。
    def upload(filePath,browser_type="chrome"):
         if browser_type == "chrome":
             title = "打开"
         else:
             title = ""
    #找元素
    # 一级窗口"#32770","打开" 
    dialog = win32gui.FindWindow("#32770",title)
        ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None)  #二级
          comboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None)   #三级
    # 编辑按钮   
    edit = win32gui.FindWindowEx(comboBox,0,'Edit',None)  #四级
    #打开按钮  
    button = win32gui.FindWindowEx(dialog,0,'Button',"打开(&O)") #二级
    # 往编辑当中,输入文件路径 。 
    win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filePath) #发送文件路径
    win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) #点击打开按钮
  • 相关阅读:
    制作类似QQ截图软件
    XML文件与实体类的互相转换
    MFC中真彩工具条的制作方法
    MFC使用技巧集锦(1)(转载)
    抽象工厂模式与工厂方法模式区别
    VC数据库编程分析
    如何让工具条显示256色图像
    华为软件编程规范和范例
    设计模式总结性试题
    VC++中基于ADO操作ACCESS数据库,FLEXGRID控件的综合应用
  • 原文地址:https://www.cnblogs.com/xiaoxiaozhaoxin/p/12546258.html
Copyright © 2011-2022 走看看