selenium常见元素操作

web UI自动化

  1. 绝对定位 : 以/开头 非常依赖于页面的顺序和位置

  2. 相对定位: 以//开头 不依赖页面的循序和位置。只看整个页面中有没有符合表达式的元素

    xpath定位语法
    相对定位//标签名称[@属性名称=值]
    逻辑运算逻辑运算 and or //标签名称[@属性名称=值 and @属性名称=值]
    层级定位text() =“文本定位”, contains(@属性名称/text(),“文本内容”) 包含
    轴定位/轴名称::节点名称

轴定位

  • following:😗 表示当前节点后的所有节点
  • preceding:😗 表示当前节点前的所有节点
  • following-sibling:😗 表示当前节点后的所有同级节点
  • preceding-sibling:😗 表示当前节点前的所有同级节点
  • child:😗 表示当前节点的所有子节点
  • parent:😗 表示当前节点的所有父节点
  • ancestor:😗 表示当前节点的祖父节点
  • self:😗 表示当前节点的自身元素
  • descendant-or-self:😗 表示当前节点及他们的后代元素
  • ancestor-or-self:😗 表示当前节点及它的祖先节点

等待方式

  • 强制等待sleep(秒)

  • 隐性等待(会话级别): 设置最长等待时间,在这个时间内加载完成,则执行下一步。整个driver的会话周期内,设置一次即可,全局可用(一个会话周期指浏览器从打开关闭)。

  • 显性等待

  1. WebDriver类:显性等待类。WebDriverWait(driver,等待时长,轮询周期).until()/until_not()

  2. expected_conditions模块:提供一系列期望的条件。

    presence_of_element_located:元素存在

切换iframe

  1. driver.switch_to.frame(下标 or name or webelement)
  2. frame_to_be_available_and_switch_to_it

窗口切换

driver.switch_to.windows()

弹窗处理

WebDriverWait(self.driver, 10).until(EC.alert_is_present()) # 等待弹窗出现

鼠标操作

由selenium的ActionChains类来完成模拟鼠标操作

from selenium.webdriver.common.action_chains import ActionChains

下拉框操作

  1. 导入from selenium.webdriver.support.ui import Select
  2. 找到select元素driver = find_element_by_xpath("元素表达式")
  3. 实例化Select类s=Select(select元素)
  4. 选择下拉列表值s.select_by_index(下标,从0开始算,第一个默认为0)

键盘操作

  1. 导入from selenium.webdriver.common.keys import Keys

js操作

  1. 移动到元素element对象的“底端”与当前窗口“底部”对齐:
driver.execute_script("arguments[0].scrolllntoView(false);", element)
  1. 移动元素element对象“顶端”与当前窗口的“顶部”对齐:
driver.execute_script("argnuments[0].scrolllntoView();", element)
  1. 移动到页面底部
driver.execute_script("window.scrolllTo(0,document.body.scrllHe)")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值