selenium 基础
一、元素定位方式
1、单个元素定位:
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_xpath()
find_element_by_css_selector()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text
2、定位元素组
find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_xpath()
find_elements_by_css_selector()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text
示例:找寻多个id相同的元素,并点击
elements = driver. find_elements_by_id(“id”)
for element in elements:
element.click()
3、根据父节点找子节点:
以如下html代码为例:
<html>
<body>
<div id="A">
<div id="B">
<div>parent to child</div>
</div>
</div>
</body>
</html>
现根据id=A的父节点找子节点B:
3.1 串联查找:
Element = driver. find_element_by_id(“A”). find_element_by_tag_name(“div”)
3.2 Xpath 父子关系查找:
Element = driver. find_element_by_id(“//div[@id='B']/div”)
4、根据子节点找父节点
<html>
<body>
<div id="A">
<div id="B">
<div>parent to child</div>
</div>
</div>
</body>
</html>
现根据id=B的子节点找父节点A:
element = driver.find_element_by_xpath("//div[@id='C']/...")
二、元素处理方法
1、下拉选择框
1.1 带有select标签的选择框
element = driver.find……
Select(element).select_by_index(value)
1.2 其他选择框
先输入、后回车
self.click_element() //先点击,触发下拉框
element = self.get_element() //获取下拉框元素
element.send_keys(__value) //输入目标值
element.send_keys(Keys.ENTER) //模拟键盘回车
直接点击:
self.click_element() //先点击,触发下拉框
driver.find_element_by……().click() //找到目标元素直接点击
2、输入框
input、textarea类型
富文本
3、鼠标操作
单击:click()
双击:double_click()
右键点击:context_click()
悬停:move_to_element()
4、 键盘操作
5、文件上传
<input>文件上传
6、等待页面加载
-
判断当前是否跳转至正确URL
-
该页面特定元素加载完成
-
显式等待、隐式等待