• 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')
    
    
  • 相关阅读:
    区块链|肖臻《区块链技术与应用》公开课之以太坊篇
    区块链|肖臻《区块链技术与应用》公开课之比特币篇
    复合数据类型
    广播变量和累加器
    mysql_基本操作
    8.10 NOI模拟赛 fzhtql SAM 后缀数组 启发式合并 dsu on tree 树状数组 set 线段树合并
    心态
    7.29 NOI 模拟赛 Stars 状压 dp
    8.2 NOI模拟赛 Palindrome dp 组合计数 分类讨论
    7.30 NOI模拟赛 B Easy Sum 分块 NTT
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12875870.html
Copyright © 2020-2023  润新知