自动化

一、web自动化定位

  1. 配置环境
    1. Firefox
    2. 三个插件
  2. 使用
    1. Xpath
    2. css选择器

二、selenium使用
1.环境搭建
Python3.7-3.9
Firefox35
selenium=2.48.0
三、selenium对浏览器操作
from selenium import webdriver

drvier = webdriver.FireFox()
drvier = webdriver.Chrome()

driver.get(url)

driver.maximize_window()
driver.get_window_size()
driver.set_window_size(w,h)
driver.get_window_position()
driver.set_window_position(x,y)

driver.back()
driver.forword()

driver.current_url
driver.title
driver.page_source

data = driver.get_screenshot_as_png()
with open('a.png','wb') as f:
f.write(data)

driver.get_screenshot_as_file('b.png')

driver.close()
driver.quit()

四、两类、八大元素定位方法
from selenium.webdriver.common.by import By

  1. id
    ele = driver.find_element_by_id('id')
    ele = driver.find_element(By.ID,'id')

  2. name
    ele = driver.find_element_by_name('name')
    ele = driver.find_element(By.NAME,'id')

  3. class
    ele = driver.find_element_by_class_name('class')
    ele = driver.find_element(By.CLASS_NAME,'class')

  4. Xpath
    ele = driver.find_element_by_xpath('xclass')
    ele = driver.find_element(By.XPATH,'xclass')

  5. css selector
    ele = driver.find_element_by_css_selector("#id .class")
    ele = driver.find_element(By.CSS_SELECTOR,'#id .class')

  6. link_text
    ele = driver.find_element_by_link_text("text")
    ele = driver.find_element(By.LINK_TEXT,'text')

  7. partial_link_text
    ele = driver.find_element_by_partial_link_text("text")
    ele = driver.find_element(By.PARTIAL_LINK_TEXT,'text')

  8. table name,标签名必须唯一
    ele = driver.find_element_by_tag_name("TAG_NAME")
    ele = driver.find_element(By.TAG_NAME,'"TAG_NAME"')

五、元素的操作
ele.click()
ele.clear()
ele.send_keys("值")
ele.submit()

六、鼠标和键盘
鼠标
from selenium.webdriver import ActionoChains

ActionChains(driver).context_click(ele).perform()
ActionChains(driver).double_click(ele).perform()
ActionChains(driver).move_to_element(ele).perform()

键盘
from selenium.webdriver.common.keys import Keys
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,'a') 全选(Ctrl+A)
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
send_keys(Keys.F1) 键盘 F1
send_keys(Keys.F12) 键盘 F12

七、浏览器等待

  1. 固定等待:硬等指定的时间

    ```python
    import time
    time.sleep(3)
    ```
    
  2. 显示等待

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium import webdriver
    
    WebDriverWait(driver, 3, 0.5, ignored_exceptions=None).until(EC.presence_of_element_located(By.ID, 'kw'))
    
  3. 隐式等待

    driver.implicitly_wait(10)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考链接: web自动化测试教案:http://www.cnblogs.com/zidonghua/p/74300...
    永杰gg阅读 1,091评论 0 0
  • 自动化 一、概念 互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuou...
    G_eebd阅读 340评论 0 0
  • 一、selenium环境搭建 (1)python3.7 (2)Firefox35(大于43) ...
    熠漠然阅读 166评论 0 0
  • 一、概念 互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous in...
    __65a0阅读 878评论 0 4
  • 1. 什么是框架 框架(framework)是一个框子 -- 指其约束性,也是一个架子 -- 指其支撑性,是一个基...
    在摘棉花阅读 192评论 0 0