Selenium中的Xpath CSS定位

Xpath定位 方法
driver.find_element_by_xpath()

利用元素属性
说明:快速定位元素,利用元素唯一属性;
示例://*[@id=‘userA’]

层级与属性结合
说明:要找的元素没有属性,但是它的父级有;
示例://*[@id=‘p1’]/input

属性与逻辑结合
说明:解决元素之间个相同属性重名问题
示例://*[@id=‘telA’ and @class=‘telA’]

Xpath-延伸
//[text()=“xxx”] 文本内容是xxx的元素
//
[starts-with(@attribute,‘xxx’)] 属性以xxx开头的元素
//*[contains(@attribute,‘Sxxx’)] 属性中含有xxx的元素

CSS定位 方法
driver.find_element_by_css_selector()

id选择器
说明:根据元素id属性来选择
格式:#id 如:#userA <选择id属性值为userA的所有元素>

class选择器
说明:根据元素class属性来选择
格式:.class 如:.telA <选择class属性值为telA的所有元素>

元素选择器
说明:根据元素的标签名选择
格式:element 如:input <选择所有input元素>

属性选择器
说明:根据元素的属性名和值来选择
格式:[attribute=value] 如:[type=“password”] <选择所有type属性值为password的值>

层级选择器
说明:根据元素的父子关系来选择
格式:element>element 如:p>input <返回所有p元素下所有的input元素>
提示:> 可以用空格代替 如:p input 或者 p [type=‘password’]
CSS延伸

  1. input[type^=‘p’] 说明:type属性以p字母开头的元素
  2. input[type$=‘d’] 说明:type属性以d字母结束的元素
  3. input[type*=‘w’] 说明:type属性包含w字母的元素
定位方式 xpath css
元素名 //input input
id定位 //input[@id=‘userA’] #userA
class /*[@class=‘telA’] .telA
属性 //*[text()=“xxx”] input[type$=‘d’]
属性 //*[starts-with(@attribute,‘xxx’)] input[type^=‘p’]
属性 //*contains(@attribute,‘xxx’)] input[type*=‘w’]

By类的方法
from selenium.webdriver.common.by import By

方法:find_element(By.ID,“userA”)
备注:需要两个参数,第一个参数为定位的类型由By提供,第二个参数为定位的具体方式
示例:
1. driver.find_element(By.CSS_SELECTOR,’#emailA’).send_keys("[email protected]")
2. driver.find_element(By.XPATH,’//*[@id=“emailA”]’).send_keys(‘[email protected]’)
3. driver.find_element(By.ID,“userA”).send_keys(“admin”)
4. driver.find_element(By.NAME,“passwordA”).send_keys(“123456”)
5. driver.find_element(By.CLASS_NAME,“telA”).send_keys(“18611111111”)
6. driver.find_element(By.TAG_NAME,‘input’).send_keys(“123”)
7. driver.find_element(By.LINK_TEXT,‘访问 新浪 网站’).click()
8. driver.find_element(By.PARTIAL_LINK_TEXT,‘访问’).click()

元素常用操作方法

  1. clear() 清除文本
  2. send_keys() 模拟输入
  3. click() 单击元素

WebDriver操作浏览器常用方法

  1. driver.maximize_window() 最大化 --> 模拟浏览器最大化按钮
  2. driver.set_window_size(100,100) 浏览器大小 --> 设置浏览器宽、高(像素点)
  3. driver,set_window_position(300,200) 浏览器位置 --> 设置浏览器位置
  4. driver.back() 后退 --> 模拟浏览器后退按钮
  5. driver.forward() 前进 --> 模拟浏览器前进按钮
  6. driver.refresh() 刷新 --> 模拟浏览器F5刷新
  7. driver.close() 关闭 --> 模拟浏览器关闭按钮(关闭单个窗口)
  8. driver.quit() 关闭 --> 关闭所有WebDriver启动的窗口

WebDriver其他常用方法

  1. size 返回元素大小
  2. text 获取元素的文本
  3. title 获取页面title
  4. current_url 获取当前页面URL
  5. get_attribute(“xxx”) 获取属性值;xxx:要获取的属性
  6. is_display() 判断元素是否可见
  7. is_enabled() 判断元素是否可用

提示:
1. size、text、title、current_url:为属性,调用时无括号;如:xxx.size
2. title、current_url:使用浏览器实例化对象直接调用; 如: driver.title

WebDriver操作鼠标方法

说明:在WebDriver中将操作鼠标的方法封装在ActionChains类中

  1. context_click() 右击 --> 此方法模拟鼠标右键点击效果
  2. double_click() 双击 --> 此方法模拟双标双击效果
  3. drag_and_drop() 拖动 --> 此方法模拟双标拖动效果
  4. move_to_element() 悬停 --> 此方法模拟鼠标悬停效果
  5. perform() 执行 --> 此方法用来执行以上所有鼠标方法

代码实现关键点分析

  1. 导包:from selenium.webdriver.common.action_chains import ActionChains
  2. 实例化ActionChains对象:Action=ActionChains(driver)
  3. 调用右键方法:element=Action.context_click(username)
  4. 执行:element.perform()

拖动关键点分析

  1. 源元素 socure=driver.find_element_by_id(xxx)
  2. 目标元素 target=driver.find_element_by_id(xxx)
  3. 调用方法 Action.drag_and_drop(source,target).perform()

常用的键盘操作
from selenium.webdriver.common.keys import Keys

  1. send_keys(Keys.BACK_SPACE)删除键(BackSpace)
  2. send_keys(Keys.SPACE)空格键(Space)
  3. send_keys(Keys.TAB)制表键(Tab)
  4. send_keys(Keys.ESCAPE)回退键(Esc)
  5. send_keys(Keys.ENTER)回车键(Enter)
  6. send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
  7. send_keys(Keys.CONTROL,‘c’)复制(Ctrl+C)

猜你喜欢

转载自blog.csdn.net/qq_34237321/article/details/97885927