from selenium import webdriver #引入selenium的浏览器控制模块
browser = webdriver.Chrome() # 实例化一个headless浏览器
browser.get("http://www.baidu.com") # 访问百度首页
browser.find_element_by_id("kw").send_keys("selenium") # 通过id定位到输入框,并输入selenium
browser.find_element_by_id("su").click() #通过id定位到百度按钮,并点击
browser.quit() # 关闭当前页面
# browser.close() # 关闭当前浏览器
1.窗口最大化:
在访问到url之后,可以使用browser.maximize_window(),最大化窗口
使用场景:
在我们操作浏览器的时候,可能会觉得别扭,想要全屏看执行效果
2.设置浏览器大小
在访问到url之后,使用browser.set_window_size(480, 800)
使用场景:
比如需要查看在ipad下的执行效果
3.回退和前进操作
由详情页回退的列表页
browser.back()
由列表页前进到详情页
browser.forward()
4.selenium中简单对象定位
find_element_by_id("kw"):id属性
find_element_by_name("wd"):name属性
find_element_by_xpath("xpath语法")
find_element_by_class_name("addr"):类名
find_element_by_link_text():不清楚,只知道是连接
find_element_by_partial_link_text:更不清除,部分类似模糊查询
find_element_by_tag_name("input"):标签名
find_element_by_css_selector:非常牛X,值得学习,我用的不多
5.层级定位:基本原则-先定位先辈元素,再定位子孙元素
一般使用xpath来定位会比较简单,遇到较难的,只能是跟前辈取经或网络中找答案
6.最上面的代码中有,对象的点击等操作
send_keys(""):用于post请求时输入内容
click() : 用于点击按钮
clear() : 用于在输入内容之前清空输入框中的内容
submit() : 类似click的使用
text : 用在定位元素后,用来获取元素内容
get_attribute() : 定位元素后,用来获取元素某个属性的值
7.内嵌网页定位
switch_to_frame("定位标记")
switch_to_window("定位标记")
8.调用js
execute_script('js',选中元素)
execute_script(js)
这块的用法需要对前端只是比较了解才行,尤其是js,能更好的定位
9.处理下拉列表,之后会有代码呈上,也可直接借鉴第5步,使用xpath
但是,弹出下拉列表之后,应该然程序中止一段时间,方便selenium 选取元素
10.处理弹窗:
driver.switch_to_alert().accept()
# 定位到弹窗,接受警告提示
11.模拟键盘按键
需要引入keys包
from selenium import webdriver.common.keys
import Keys
使用send_keys()发送键盘按键
# send_keys(Keys.ENTER)
组合键:剪切
# send_keys(Keys.CONTROL,‘x’)
12.鼠标的操作
context_click() 右击 :定位到元素,赋值给变量,作为右击参数
double_click() 双击 :定位到元素,赋值给变量,作为双击参数
drag_and_drop() 拖动 :定位元素初始和结束,赋值变量,作为参数
13.关于cookie的处理
driver.get_cookies() 获得cookie信息
add_cookie(cookie_dict) 向cookie添加会话信息
delete_cookie(name) 删除特定(部分)的cookie
delete_all_cookies() 删除所有cookie