selenium基础知识

1. 八大定位元素法则

  • id
  • name
  • link text:a标签的text内容
  • partial link text:a标签的text内容的模糊查找
  • tag name: 一般不用于测试,用于爬虫
  • class name: 基于元素class 属性进行定位
  • css selector 基于css样式定位
  • xpath基于html结构定位

2. xpath的定位法则

  • //从根路径下查询
  • *任意元素,也可以直接输入标签名字
  • []筛选条件
  • @元素的属性
  • text()通过文本定位
  • [contains()]表示调用contains函数,进行内容的模糊查找

3. 相对定位器

  • 上:driver.find_elements(locate_with(By.TAG_NAME,'标签名称')).above(element)
  • 下:driver.find_elements(locate_with(By.TAG_NAME,'标签名称')).below(element)
  • 左:driver.find_elements(locate_with(By.TAG_NAME,'标签名称')).to_left_of(element)
  • 右:driver.find_elements(locate_with(By.TAG_NAME,'标签名称')).to_right_of(element)
  • 附近:driver.find_elements(locate_with(By.TAG_NAME,'标签名称')).near(element)

4. 元素的操作

  • 访问文件或者网页:driver.get()
  • 窗体最大化/最小化:driver.maximize_window()/driver.minimize_window()
  • 浏览器前进/后退/刷新:driver.foward()/driver.back()/driver.fresh()
  • 获取title:driver.title
  • 元素定位:el=driver.find_element():返回的是第一个元素/driver.find_elements():返回的是列表,找到所有符合条件的元素
  • 点击操作:el.click()
  • 输入文本或者文件上传(文件上传如果是input标签直接使用send_keys()):el.send_keys()
  • 鼠标悬停:ActionChains(driver).move_to_element(el).perform()
  • 对下拉框操作:
  1. 对于标签为input的下拉框:一般使用send_keys()操作
  2. 对于其他标签的下拉框:一般使用click()操作
  3. 对于标签为select的下拉框
    from selenium.webdriver.support.select import Select
    
    driver=webdriver.Chrome()
    #调用select类
    select=Select(el)
    #通过下标选择
    select.select_by_index()
    #通过value值选择
    select.select_by_value()
    #通过文本选择
    select.select_by_visible_text()
    View Code
  • 退出浏览器:driver.quit()

5. 句柄与frame

  • 每一个页面就是一个句柄,selenium访问新页面的时候都默认还停留在老页面
  • 句柄获取:handles=driver.window_handles
  • 切换句柄:driver.switch_to.window(handles[])

6. iframe处理

  • 如果元素在iframe中,要先切换至iframe再对元素进行定位
  • driver.switch_to.frame()
  • 切换回默认窗体,调回frame之外的内容:driver.switch_to.default_content()

7. selenium新增功能

  • 自动生成新的标签页并切换过去 driver.switch_to.new_window('tab')
  • 自动生成新的浏览器并切换过去 driver.switch_to.new_window('window')
posted @ 2022-04-15 22:18  思路花语0722  阅读(69)  评论(0)    收藏  举报