jc-home

一:八大元素定位,主要讲比较常用到的几种

  1. id 实例: driver.find_element_by_id("username").click
  2. class  实例:driver.find_element_by_class_name("username").click
    注意:多个元素共用一个class,如果像列表内有多个按钮这种,需要操作某个按钮。可以先获取class内的所有元素,然后进行下标的方式去操作某个元素。如果需要都点击一遍,可以把返回值做一个循环操作。
  3. name  实例:driver.find_element_by_id("username").click
  4. xpath(万能,重点)实例: driver.find_element_by_xpath("/html/body/div/ul[2]/li[1]").click
  5. css(万能,重点)实例: driver.find_element_by_css_selector("body > div > ul > li:nth-child(2)").click

二:浏览器的操作

  • 最大化,最小化
    driver.maximize_window()  # 最大化浏览器

   driver.minimize_window() # 最小化浏览器

  • 获取标签页的title、url

    driver.title #获取当前标签页的title

    driver.current_url #获取当前标签页的url

    driver.name # 获取当前浏览器的名称

  • 浏览器前进、后退、刷新

    driver.forward()  # 前进

    driver.back()  # 后退

    driver.refresh()  # 刷新

  • 打开、关闭新标签页

   # 获取当前标签页句柄
   driver.current_window_handle

   # 获取浏览器所有标签页句柄
   handles = driver.window_handles

   # 切换标签页
   driver.switch_to.window(handles[-1])

   # 关闭当前标签页
   driver.close()

  • 控制浏览器滚动条

    driver.execute_script("window.scrollBy(0,1000)")

    x:必传,正数则向右滑动的像素值,负数则向左滑动的像素值

    y:必传,正数则向下滑动的像素值,负数则向上滑动的像素值


三:元素常见操作

  • 元素是否可见

    # 找到 可见元素
    ant_btn3 = driver.find_element_by_class_name("ant-btn3")
    ant_btn3.is_displayed()
    某个元素若有 display:none 的样式则是不可见,否则就是可见

  • 元素是否可点击

    # 找到 可点击元素
    ant_btn3 = driver.find_element_by_class_name("ant-btn1")
    ant_btn3.is_enabled()
    某个元素若有 disabled 属性则是不可点击,否则就是可点击

  • 元素是否已被选中

    # 找到 未被选中的元素
    option1 = driver.find_elements_by_tag_name("option")[0]
    option1.is_selected()
    某个元素若有 selected 属性则是已被选择

  • 表单提交

    # 找到搜索框
    search_text = driver.find_element_by_id(\'kw\').send_keys(\'JC\')

    # 提交表单
    search_text.submit()

    submit() 方法用于提交表单。
    实际场景:在搜索框输入关键字之后的“回车” 操作, 就可以通过该方法模拟

四:鼠标操作

  • 鼠标左键、右键单击、双击

    from selenium.webdriver import ActionChains
    # 创建实例
    chains = ActionChains(driver)
    # 登录按钮
    username = driver.find_element_by_id("username")
    password = driver.find_element_by_id("password")

    # 左键点击
    chains.click(username).perform()

    # 右键点击
    chains.context_click(username).perform()

    # 双击
    chains.double_click(password).perform()

  • 鼠标悬停

    # 悬停到设置按钮
    chains.move_to_element(login_btn).perform()

五:键盘操作

  • # 找到搜索框
    inputElement = driver.find_element_by_id("kw")

  • # 输入搜索内容
    inputElement.send_keys("小菠萝测试笔记")

  • # ctrl+a全选
    inputElement.send_keys(Keys.CONTROL, "a")

  • # ctrl+c 复制输入框内容
    inputElement.send_keys(Keys.CONTROL, \'c\')

  • # ctrl+x 剪切输入框内容
    inputElement.send_keys(Keys.CONTROL, \'x\')

  • # ctrl+x 剪切输入框内容
    inputElement.send_keys(Keys.CONTROL, \'x\')

  •  

    # ctrl+v 粘贴输入框内容
    inputElement.send_keys(Keys.CONTROL, \'v\')

  •  

    # 空格键
    inputElement.send_keys(Keys.SPACE)

  •  

    # 后退键
    inputElement.send_keys(Keys.BACKSPACE)

  •  

    # tab键
    inputElement.send_keys(Keys.TAB)

  •  

    # 回车键
    inputElement.send_keys(Keys.ENTER)

  •  

    # 刷新页面
    inputElement.send_keys(Keys.F5)

  • 如果定位不到元素,如上传弹窗。可以使用以下两个库直接操作鼠标和键盘

    pymouse(鼠标对象),

    pykeyboard(键盘对象)

六:显示等待、隐性等待、强制等待
七:

分类:

技术点:

相关文章: