1.窗口最大化:
driver.maximize_window() 要放置在浏览器驱动之后
2.设置浏览器位置:
driver.set_window_position(x,y) x,y表示横坐标和纵坐标,注意在自动化里面原点在屏幕的左上角
3.设置浏览器大小:
driver.set_window_size(w,h);w表示宽度,h表示高度,以像素为单位
4.浏览器前进操作:
driver.forward()
5.浏览器后退操作:
driver.back()
6.浏览器刷新:
driver.refresh()
7.获取当前页面标题:
driver.refresh()
8.获取当前页面地址:
driver.current_url
9.关闭当前页面:
driver.close()
10.关闭浏览器驱动:
driver.quit()
11.获取元素信息(作为断言的依据,作为参数传递)–重要
①.
获取元素大小——element.size
②.
获取元素文本信息——element.text
③.
获取元素的属性值信息——element.get_attribute(attr_name)
④.
判定元素是否可见——element.is_displayed()
⑤.
判定元素是否可用——element.is_enabled()
⑥.
判定元素是否选择——element.is_selected()
12.键盘操作
①.单键操作:
element.send_keys(keys.key)——keys.key表示指定键符
element.send_keys(“value”)
②.组合操作:
element.send_keys(keys.key,“a”)
13.鼠标操作
①.导包——from selenium.webdriver import ActionChains
②.实例化鼠标对象——action = ActionChains(driver)
③.调用鼠标方法——element:表示所要操作的对象,也就是之前所学的元素定位后返回来的结果
3-1.鼠标右键——action.context_click(element)自定义右键菜单才能执行元素定位操作,浏览器默认的右键操作selenium是不支持进行操作
3-2.鼠标双击——action.double_click(element)
3-3.鼠标拖拽——action.drag_and_drop(source,target) 【source表示需要拖到的元素对象,target表示目标位置的元素对象】
3-4.拖动单个元素——action.drag_and_drop_by_offset(element,x,y) 【element表示所有拖到的元素,x表示横向拖动的距离,尽力比实际多10px左右。y表示纵向推动的距离】
3-5.鼠标悬停——action.move_to_element(element)
④.执行鼠标操作——action.perform()
14.等待
①.显示等待:WebDriverWait
1.导包——WebDriverWait (from selenium.webdriver.support.wait import WebDriverWait)
2.设置等待方法——WebDriverWait(driver,timeout,poll_f)
3.调用until(直到...时)——until(method)
4.执行元素定位的匿名函数——lambda x:x.find_element_by_xxx(xxx)
driver:表示浏览器驱动对象
timeout:表示最大超时时长
poll_f:表示间隔时间,默认为0.5s;可以自行更改
显示等待只针对until内定义的元素定位生效
抛出异常:隐式等待为:NosuchElementException;显示等待为:TimeoutException
强制等待:time.sleep()
某些特殊的场景还是需要用到强制等待
(如碰到找不到元素的报错,但是又设置了智能等待,且确定了元素定位的代码也没有问题,这个时候就需要考虑是否有特殊场景需要强制等待)
15.下拉框选择:元素定位方法、select标签定位方法
①.只要是首次打开页面能加载到的元素都可以通过元素定位的方式进行定位和操作
②.如果需要先点击下拉框对象后,选项才加载出来,就必须先通过脚本执行点击,等待选项元素加载
1.实例化select对象,需要先导入select包
element:表示的是select标签的元素对象,不要搞成选项的元素对象
select =Select(element)
2.执行选择操作
(1)通过选项的索引进行选择,下标起始值为0和数组一样
select.select_by_index(index)
(2)通过选项的value属性值来选择目标选项
select.select_by_value(value) #value表示option标签元素的value属性的属性值
(3)通过选项的文本信息来选择
select.select_by_visiable_text(text) #text表示option标签元素的文本信息
注意:
1.如果用select类的实现下拉框操作, 首先必须要保障你操作的下拉框是<select>标签
2.使用下标时,注意不要超过(可选项数量-1),否则会报错
3.通过select类去处理下拉框的话只需要定位一次select标签元素即可
16.弹出框处理
确认框:(confirm())
警告框:(alert())
信息提示框:(promp())
弹出框处理方法:
获取弹出框对象——alert=driver.swich_to.alert
指定弹出框处理方法
(1)接受弹出框,也就是点击确认按钮——alert.accept()
(2)取消弹出框——alert.dismiss()
(3)获取弹出框文本信息——aleat.text
17.frame切换
①.frame切换的方法,frame_element表示iframe标签的元素
driver.swich_to.frame(frame_element)
②.恢复默认页面方法:
driver.switch_to.default_content()
18.窗口切换:【重要重要重要】
handle:句柄,是页面的唯一标识码
步骤:
获取所有窗口的handle信息
handle=driver.window_handles
切换导指定窗口,下面表示的是切换到最新打开的窗口
driver.switch_to.window(handle[-1])
driver.find_element_by_id('XXX').click() #点击某页面
driver.switch_to.window(driver.window_handles[-1]) #切换到最新的页面
time.sleep(2)
driver.close() #关闭