Selenium中的Xpath CSS定位

本文详细介绍了Selenium中使用Xpath和CSS定位元素的方法,包括各种定位策略,如属性、层级和逻辑结合。同时,还涵盖了CSS的选择器,如id、class、元素和属性选择器,以及它们的层级和属性组合。此外,还讲解了Selenium的By类和元素操作方法,如click、send_keys等,并提及了鼠标和键盘操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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字母的元素
定位方式xpathcss
元素名//inputinput
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("asdasd@asd.com")
2. driver.find_element(By.XPATH,’//*[@id=“emailA”]’).send_keys(‘asdasd@asd.com’)
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值