实际上Selenium已经考虑到,浏览器需要调用对应Selenium的API方法完成相应操作,即浏览器已经完成内置了,并不需要通过元素定位。浏览器常见的7种基本操作如下:
1.浏览器前进操作
- forward():在初始操作时,不存在前进操作,一般与back配合使用。
- back():后退操作(当前对象必须存在上下文)
2.浏览器的最大化,最小化,全屏
- get_driver_maximize_window():实现窗口最大化操作
- get_driver_minimize_window():实现窗口最小化操作
- get_driver_fullscreen_window():实现窗口全屏操作
3.浏览器close和quite方法的区别
close表示关闭当前对象所处页面(操作页面)的窗口,quite表示关闭所有的页面窗口并关闭驱动器。如果存在一个窗口,其效果是相同的。
4.浏览器的相关属性获取
print(get_driver.current_url):获取当前对象的url地址
print(get_driver.current_window_handle):获取当前对象的句柄。
print(get_driver.title):获取当前对象的标题。
print(get_driver.window_handles):获取当前对象的所有句柄。
5.浏览器句柄操作
驱动器对象.switch_to_window(句柄名):这种方法属于保留方法,不建议使用,后期会删除;句柄名可以通过先获取所有句柄然后定义其索引的方式获取。
**注意:**如果存在多个句柄,建议对每个句柄进行命名操作,便于句柄之间的切换。
6.浏览器中的alert框处理
alert框是无法直接进行元素定位的,需要使用switch_to.alert先切换到alert对象中,然后调用对应的方法执行。accept()方法表示确定;dismiss()方法表示取消。也可以获取其文本内容,调用text属性即可。
7.浏览器的滚动操作
浏览器滚动条无法直接进行定位,所以需要借助JS脚本完成操作。
-
指定上下滚动的高度
jsjs="var browser=document.documentElement.scrollTop=100" get_driver.execute_script(js) -
实现左右滚动,还可以实现上下滚动。
pythonget_driver.execute_script("window.scrollTo(0,100)") #window.scrollTo(x,y) x:横向滚动,y:纵向滚动 #window.scrollBy(x,y)表示相对当前的坐标点进行再次滚动后的x,y坐标的值。 -
不考虑其横向滚动和纵向滚动的坐标值,直接滚动到指定元素位置
pythonarguments[0].scrollIntoView() #arguments[0]表示传入的定位元素的对象
WebElement接口的常用方法:
- clear:清除元素的内容
- send_keys:在元素上模拟按键输入
- click:点击元素
- submit:提交表单
- size:返回元素的尺寸
- text:获取元素的文本
- get_attribute(name):获取属性值
- is_displayed():设置该元素是否可见