selenium 原理
就是通过webdriver 给浏览器的驱动发送命令,打开浏览器,建立http通信请求 然后通过发送各种命令让给浏览器
进而执行各种操作
xpath 语法
1. //a[@class = "" and text()=""] 解释 text()函数 这个方法是获取去文本 可以用and来写多个 定位方式
@ 后面跟的是属性
/ 单个表示绝对路径 // 表示相对路径
2. contains(@ /text(),"") 包含文本 函数
contains(@id,"")、contains(text(),"")
3.轴定位 //a[@id= ""]/ +轴定位 接轴定位的时候用 单斜杠 /
ancetor :祖先节点 包括父
parent:父节点
preceding:当前元素节点标签之前的所有节点
preceding-sibling 当前元素节点标签之前的所有兄弟节点
following:当前元素节点标签之后的所有节点
following-sibling:当前元素节点标签之后的所有兄弟节点
使用语法:
/轴名称::节点名称
4. driver.close() 关闭浏览器当前的窗口
5. driver.quite() 退出浏览器
6. driver.back()返回前一页面
7. driver.forward() 前进
8.driver.refresh() 刷新
9. driver.title() 获取窗口标题
10。 driver.current_url 获取url
driver.current_window_handle 获取当前窗口的句柄 身份证id
对文元素的四种基本操作
1. driver.fin.......get_attribute("value") 获取元素的属性值 也就是获取元素的value值
2. driver.fin.......text 获取元素的文本
3. 点击操作
4.输入操作
常用页面操作3
等待方式
1. time.sleep()
2.智能等待
隐式等待 implicitly_wait(秒) 设置等待时长,在这个时间内加载完成,则执行下一步
添加一次就行,全局通用
3.显性等待
WebDriverWait类
WebDriverWait(driver,等待时长,轮循周期默认值0.5秒).until(判断条件)/until_not() 直到这个条件不成立
4. expected_conditions模块:提供了一系列期望发生的条件
presence_of_element_located(里面是个元祖(by.跟定位方式,"表达式")):元素存在
visibility_of_element_located:元素可见
element_to_be_clickable:元素可点击
使用之前需要导入的库from selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import By