zoukankan      html  css  js  c++  java
  • python自动化测试_9

    selenium + python

    介绍:

    from selenium import webdriver
    driver = webdriver.Firefox()
    driver.get("https://www.baidu.com")
    
    --> 将驱动放置在python的根目录
    

    img

    案例:

    from selenium import webdriver
    import time
    
    # 打开浏览器
    # 浏览器驱动放到python.exe目录下可免去将驱动地址加到环境变量步骤
    driver = webdriver.Firefox()
    
    # sllep 休眠
    time.sleep(3)   # 等待3秒
    driver.get('https://www.baidu.com')
    time.sleep(3)
    driver.get('https://hao.360.cn/?src=lm&ls=n72374cee90')
    time.sleep(3)
    driver.back()       # 返回上一页(右箭头)
    driver.forward()    # 去下一页(左箭头)
    
    driver.refresh()    # 刷新当前网页
    
    driver.close()      # 关闭当前窗口
    
    # .submit()  模拟键盘的回车建
    driver.find_element_by_link_text('新闻').submit()
    
    driver.quit()   # 退出浏览器,清空临时文件
    

    定位方式:

    id定位:find_element_by_id()
    # 定位到输入框,输入“中文”
    driver.find_element_by_id('kw').send_keys('中文')
    
    、name定位:find_element_by_name()
    # 根据name定位到百度贴吧的输入框,输入“你好”
    driver.find_element_by_name('kw1').send_keys('你好')
    
    class定位:find_element_by_class_name()
    # 当class唯一时,才能使用此方法
    driver.find_element_by_class_name('s_ipt').send_keys('你好')
    
    标签名定位:find_element_by_tag_name()  (由于标签名不唯一,不建议用此方法)
    driver.find_element_by_tag_name('body')
    # 获取定位元素下的文本信息
    t = driver.find_element_by_tag_name('body').text
    print(t)
    
    link定位(链接):find_element_by_link_text()
    # <a class="mnav" name="tj_trnews" href="http://news.baidu.com">新闻</a>
    
    driver.find_element_by_link_text('新闻').click()
    
    # 当代表link链接的文字内容过长时,可使用此方式截取部分文字定位
    driver.find_element_by_partial_link_text('hao').click()
    
    、Xpath定位:find_element_by_xpath()
    driver.find_element_by_xpath(".//*[@id='u1']/a[3]").click()
    
    CSS定位:find_element_by_css_selector()(不唯一)
    driver.find_element_by_css_selector("#kw").send_keys("你好")
    

    鼠标事件:

    # 每个模拟事件后需加.perform() 才会执行
    context_click() 右击
    double_click() 双击
    drag_and_drop(source, target) 拖动
    move_to_element() 鼠标悬停
    move_to  移动
    
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    driver = webdriver.Firefox()
    
    # 定位到元素的源位置
    ele = driver.find_element_by_link_text('新闻')
    # 将鼠标移动到定位的元素上面
    ActionChains(driver).move_to_element(ele).perform()
    
    # 鼠标拖放操作:drag_and_drop(source, target)
    # source: 鼠标拖动的源元素。
    # target: 鼠标释放的目标元素。
    
    # 定位元素的源位置
    element = driver.find_element_by_id("xxx")
    # 定位元素要移动到的目标位置
    target = driver.find_element_by_id("xxx")
    # 执行元素的拖放操作
    ActionChains(driver).drag_and_drop(element, target).perform()
    
    

    键盘事件:

    # 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,'c') 复制(Ctrl+C)
    # send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
    # send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
    # send_keys(Keys.F1) 键盘F1
    # ……
    # Send_keys(Keys.F5)键盘F5
    # …
    # send_keys(Keys.F12) 键盘F12
    
    from selenium import webdriver
    # 导入Keys 模块
    from selenium.webdriver.common.keys import Keys
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    # 输入框输入内容
    driver.find_element_by_id("kw").send_keys("seleniumm")
    # Backspace键(删除输入的内容)
    driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
    # 如键盘的F5刷新
    driver.find_element_by_id('kw').send_keys(Keys.F5)
    # 输入空格键+“教程”
    driver.find_element_by_id("kw").send_keys(Keys.SPACE)
    driver.find_element_by_id("kw").send_keys(u"教程")
    # ctrl+a 全选输入框内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
    # ctrl+x 剪切输入框内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
    # ctrl+v 粘贴内容到输入框
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')
    
    
  • 相关阅读:
    OnEraseBkgnd、OnPaint与画面重绘
    .编译ADO类DLL时报错的解决方案
    VC列表框样式
    Codeforces 131D. Subway 寻找环树的最短路径
    Codeforces 103B. Cthulhu 寻找奈亚子
    Codeforces 246D. Colorful Graph
    Codeforces 278C. Learning Languages 图的遍历
    Codeforces 217A. Ice Skating 搜索
    Codeforces 107A. Dorm Water Supply 搜图
    Codeforces 263 D. Cycle in Graph 环
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12875870.html
Copyright © 2011-2022 走看看