zoukankan      html  css  js  c++  java
  • python selenium --browser 操作

    本节知识点:

    • 打印URL
    • 将浏览器最大化
    • 设置浏览器固定宽、高
    • 操控浏览器前进、后退

     

     

    打印URL

     

    上一节讲到,可以将浏览器的title打印出来,这里再讲个简单的,把当前URL打印出来。其实也没啥大用,可以做个凑数的用例。

     

    复制代码
    #coding=utf-8
    
    from selenium import webdriver
    import time
    
    browser = webdriver.Firefox()
    
    url= 'http://www.baidu.com'
    
    #通过get方法获取当前URL打印
    print "now access %s" %(url)
    browser.get(url)
    
    time.sleep(2)
    browser.find_element_by_id("kw").send_keys("selenium")
    browser.find_element_by_id("su").click()
    time.sleep(3)
    browser.quit()   
    复制代码

     

    其实,我们可以把这用户登录成功后的URL打印,用于验证用户登录成功。

    又或者,我们打印其它信息,比如,一般的登录成功页会出现“欢迎+用户名”,可以将这个信息打印表明用户登录成功。(如何实现,你自己琢磨一下吧~!)

     

     

    将浏览器最大化

     

    我们知道调用启动的浏览器不是全屏的,这样不会影响脚本的执行,但是有时候会影响我们“观看”脚本的执行。

    复制代码
    #coding=utf-8
    
    from selenium import webdriver
    import time
    
    browser = webdriver.Firefox()
    
    browser.get("http://www.baidu.com")
    time.sleep(2)
    
    print "浏览器最大化"
    browser.maximize_window()  #将浏览器最大化显示
    time.sleep(2)
    
    browser.find_element_by_id("kw").send_keys("selenium")
    browser.find_element_by_id("su").click()
    time.sleep(3)
    browser.quit()
    复制代码

     

     

    设置浏览器固定宽、高

     

    最大化还是不够灵活,能不能随意的设置浏览的宽、高显示?当然是可以的。

    复制代码
    #coding=utf-8
    from selenium import webdriver
    import time
    
    browser = webdriver.Firefox()
    
    browser.get("http://m.mail.10086.cn")
    time.sleep(2)
    
    print "设置浏览器宽480、高800显示"
    browser.set_window_size(480, 800)  #参数数字为像素点
    time.sleep(3)
    browser.quit()
    复制代码

    这个需求也还是有的,比如我们通过PC浏览器在访问一下手机网站时,调整浏览器为手机屏幕的宽、高,容易发现一些显示问题。(上面的手机邮箱网站就是笔者测试过的一个产品)

     

     

    操控浏览器前进、后退

     

    浏览器上有一个后退、前进按钮,对于浏览网页的人是比较方便的;对于做web自动化测试的同学来说应该算是一个比较难模拟的问题;其实很简单,下面看看python的实现方式

    复制代码
    #coding=utf-8
    
    from selenium import webdriver
    import time
    
    browser = webdriver.Firefox()
    
    #访问百度首页
    first_url= 'http://www.baidu.com'
    print "now access %s" %(first_url)
    browser.get(first_url)
    time.sleep(2)
    
    #访问新闻页面
    second_url='http://news.baidu.com'
    print "now access %s" %(second_url)
    browser.get(second_url)
    time.sleep(2)
    
    #返回(后退)到百度首页
    print "back to  %s "%(first_url)
    browser.back()
    time.sleep(1)
    
    #前进到新闻页
    print "forward to  %s"%(second_url)
    browser.forward()
    time.sleep(2)
    
    browser.quit()
    复制代码

    为了使过程让你看得更清晰,在每一步操作上都加了print 和sleep 。

    说实话,这两个功能平时不太常用,所能想到的场景就是几个页面来回跳转,但又不想用get url的情况下。

     

     

  • 相关阅读:
    【LeetCode】048. Rotate Image
    【LeetCode】036. Valid Sudoku
    【LeetCode】060. Permutation Sequence
    【LeetCode】001. Two Sum
    【LeetCode】128. Longest Consecutive Sequence
    【LeetCode】081. Search in Rotated Sorted Array II
    【LeetCode】033. Search in Rotated Sorted Array
    顺时针打印矩阵
    矩形覆盖
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/saryli/p/5182811.html
Copyright © 2011-2022 走看看