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="[email protected]",pwd="123456")  
sleep(2)
click_menu(2)

  

猜你喜欢

转载自www.cnblogs.com/JcHome/p/10802203.html