首页 > Web开发 > 详细

web自动化的高级操作

时间:2020-03-22 16:13:30      阅读:42      评论:0      收藏:0      [点我收藏+]

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)    #点击打开按钮

web自动化的高级操作

原文:https://www.cnblogs.com/xiaoxiaozhaoxin/p/12546258.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!