zoukankan      html  css  js  c++  java
  • selenium (二) 浏览器的基本操作

    在上一篇中,已经介绍过selenium的元素定位,下面介绍一下,
    webdriver对浏览器的操作:

    以下内容取自selenium/webdriver/remote/webdriver中的属性和方法

    获取浏览器标题:
    driver.title


    获取当前浏览器的url地址:
    driver.current_url


    获取当前页面的源码:
    driver.page_source
    这个属性其实挺有用的,不管是在web自动化,还是app自动化。
    特别是在app页面,可以将页面源码下载下来定位元素


    获取当前窗口的handler,用于判断或切换浏览器窗口(主要作用于主-子窗口)
    driver.current_window_handle


    获取浏览器的所有窗口handler,可以用来切换窗口(主要作用于主-子窗口)
    driver.window_handles


    获取浏览器名称:
    driver.name


    以下是对浏览器的操作方法:


    关闭窗口:
    driver.close()


    退出driver驱动并关闭窗口:
    driver.quit()

    将当前窗口最大化:
    driver.maximize_window()

    将当前窗口最小化:
    driver.minimize_window()


    设置窗口指定的大小:
    driver.set_window_size(800,600)


    将浏览器进行全屏,类似于按下F11效果一致:
    driver.fullscreen_window()


    切换浏览器窗口,以driver.window_handles列表中的值作为参数
    driver.switch_to_window()


    返回退回上一步:
    driver.back()


    前进下一步:
    driver.forward()


    刷新当前页面:
    driver.refersh()


    设置隐式等待时间,单位:秒
    driver.implicitly_wait()

    保存截屏图片
    driver.get_screenshot_as_file('/Screenshots/test_case01.png')
    driver.save_screenshot('/Screenshots/test_case01.png')

    实例:

    from selenium import webdriver
    from time import sleep
    
    
    driver=webdriver.Chrome()
    driver.get("http://testshop:8081/tshop/index.php?con=simple&act=login")
    
    #登录
    def login_shop(userName,pwd):
    	try:
    		element_account=driver.find_element_by_id("account")   #通过id定位
    		element_account.send_keys(userName)
    		element_password=driver.find_element_by_name("password")  #通过name定位
    		element_password.send_keys(pwd)
    		element_loginBtn=driver.find_element_by_xpath('//button[@class="btn btn-main "]')  #通过xpath定位
    		element_loginBtn.click()
    	except Exception as e:
    		driver.driver.save_screenshot('F:\testAndStudy\test\login_shop.png')
    
    
    
    def click_menu(value):
    	#0:首页、1:限时抢购、2:团购、3:服装、4:手机商城
    	try:
    		element_menu=driver.find_elements_by_xpath('//*[@id="header"]/div[3]/ul/li[@class="link"]')   #通过elements 获取整个菜单元素,并存放在list中
    		element_menu[value].click()  #通过list下标进行点击操作
    	except Exception as e:
    		driver.save_screenshot('F:\testAndStudy\test\click_menu.png')
    
    """
    输入不存在用户名,登录失败后,将保存截图到指定路径下
    """
    login_shop(userName="1234445566@qq.com",pwd="123456")  
    sleep(2)
    click_menu(2)
    

      

  • 相关阅读:
    一些鲜为人知的编程真相
    一些鲜为人知的编程真相
    Ruby 1.9不会杀死Python
    Boost.Asio和ACE之间关于Socket编程的比较
    Effective C++第17条:要在单独的语句中使用智能指针来存储由new创建的对象
    Ruby 1.9不会杀死Python
    Boost智能指针——weak_ptr
    对象生死劫 - 构造函数和析构函数的异常
    Protocol Buffers:Google 的数据交换格式
    根据出生日期计算年龄
  • 原文地址:https://www.cnblogs.com/JcHome/p/10802203.html
Copyright © 2011-2022 走看看