2.4 Selenium常规对象接口
2.4.1 浏览器窗口方法
selenium中提供了直接在代码中操作浏览器窗口的方法。常见的方法如下
示例:
driver = webdriver.Chrome()
#设置浏览器窗口最大化
driver.maximize_window()
#访问网页使用get方法
driver.get(“https://www.baidu.com”)
#设置浏览器的宽高
driver.set_window_size(800,600)
#获取浏览器的大小
driver.get_window_size()
#设置浏览器窗口左上坐标
driver.set_window_position(100,200)
#获取浏览器窗口左上坐标
driver.get_window_position()
#后退
driver.back()
#前进
driver.forward()
#关闭浏览器 两个方法
driver.close()
driver.quit()
2.4.2 Cookie处理方法
Cookie是浏览器用来存储服务器传递过来保存的用户信息,浏览器在下次请求服务器的时候会把有效的Cookie信息带上,用于服务器识别身份。
Selenium也提供了管理Cookie的方法,包括添加、获取、删除
示例:
#获取所有cookie
driver.get_cookies()
#添加cookie name为kw 值为Selenium的cookie
driver.add_cookie({‘name’:‘kw’,‘value’:‘selenium’})
#获取name为kw的cookie
driver.get_cookie(‘kw’)
#删除name为kw的cookie
driver.delete_cookie(‘kw’)
#删除全部cookie
driver.delete_all_cookies()
2.4.3 WebElement对象操作
WebElement对象在Selenium中是所有元素对象的父类,也就是说WebElement所拥有的方法其他的元素对象都会有。不同的是,一些方法只对特定的元素有效。比如说send_keys方法他对与文本框就有效,对一个连接就无效。
下面列出WebElement对象所支持的方法和属性:
方法名 | 说明 |
---|---|
clear | 清除文本框中的文本 |
click | 点击元素 |
find_element | 查找元素的方法,请参考八大元素定位方式 |
get_attribute | 获取当前元素特定属性值。比如name、style、href等 |
id | 表示当前元素在Selenium中的唯一标识 |
is_displayed | 当前元素是否可见 例display:none 样式为不可见 |
is_enabled | 当前元素是否可用 |
is_selected | 当前元素是否被选中 |
location | 返回当前元素的左上角坐标x,y的位置,即在当前页面中的绝对位置坐标 |
location_once_scrolled_into_view | 返回当前元素第一次滚动到可视区域时的左上角坐标x,y的位置,使用此方法可以吧不在可视区域的元素滚动到可视区域。 |
parent | 返回浏览器对象 |
rect | 返回当前元素左上角坐标x,y的值,以及该元素的宽和高,及元素的显示区域 |
send_keys | 向当前元素发送字符串内容 |
size | 向当前元素发送字符串内容 |
submit | 提交当前元素所在的FORM表单,相当于单击所在FORM表单内的Submit按钮 |
tag_name | 获取当前元素的tagname内容 |
text | 获取当前元素的innerText值 |
value_of_css_property | 获取当前元素的CSS属性,如获取color的值 |
2.4.4 下拉框处理
Selenium提供了select模块处理下拉框,处理分为两步
示例:
第一步:定位select下拉框,
#导入Select 模块
from selenium.webdriver.support.select import Select
#创建浏览器对象
driver=webdriver.Chrome()
ele=driver.find_element_by_xpath(’//*[@id=“province”]’)
#创建Select对象,并定为到图中下拉框,第一步就完成了
select=Select(ele)
第二步:选择select下拉框的值
在select模块中提供了三种选择值得方法:
select.select_by_index() #通过位置定位 一般不用
select.select_by_value()#通过value定位
select.select_by_visible_text()#通过文本值定位