当前位置: 首页 > news >正文

Python的web自动化学习(四)Selenium的显性等待(元素定位)

引言:

Selenium的显性等待,其常用的定位方法介绍,后面持续更细具体用法

示例如下:

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

ID定位

wait.until(EC.visibility_of_element_located((By.ID, 'kw')))

Name定位:

wait.until(EC.visibility_of_element_located((By.NAME, 'wd')))

Class定位:

wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 's_ipt')))

Tag定位:

wait.until(EC.visibility_of_element_located((By.TAG_NAME, 'element_tag')))

Link Text定位:

wait.until(EC.visibility_of_element_located((By.LINK_TEXT, 'link_text')))

Partial Link Text定位: Link Text包含定位:

wait.until(EC.visibility_of_element_located((By.PARTIAL_LINK_TEXT, 'partial_link_text')))

CSS Selector定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'css_selector')))

XPath定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'xpath')))

层级定位:

parent_element = driver.find_element(By.XPATH, 'parent_xpath')
wait.until(EC.visibility_of_element_located((By.XPATH, 'child_xpath')), parent_element)

多个条件组合定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'xpath')) and EC.element_to_be_clickable((By.ID, 'element_id')))

标签属性定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//tag[@attribute="value"]')))

元素文本定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//*[text()="element_text"]')))

元素属性值包含定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute*="value"]')))

元素属性值以定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute^="value"]')))

元素属性值结尾定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute$="value"]')))

元素文本包含定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//*[contains(text(), "element_text")]')))

属性值正则匹配定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//*[matches(@attribute, "regex_pattern")]')))

子元素定位:

parent_element = driver.find_element(By.XPATH, 'parent_xpath')
wait.until(EC.visibility_of_element_located((By.XPATH, 'child_xpath')), parent_element)

元素索引定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '(//tag)[index]')))

兄弟元素定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'preceding-sibling::tag')))

父元素定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'parent::tag')))

祖先元素定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'ancestor::tag')))

子元素索引定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'parent_xpath/tag[index]')))

元素属性值不等于定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute!="value"]')))

元素属性值包含多个定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute~="value1"][attribute~="value2"]')))

元素属性值开始定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute^="value"]')))

以上是常用selenium的基本定位的方法,后面持续更新具体结合实际操作用法

http://www.lryc.cn/news/213614.html

相关文章:

  • X3DAudio1_7.dll是什么,解决计算机找不到X3DAudio1_7.dll文件的方法
  • 【Python】海龟图turtle.color() 方法有关RGB颜色设置详解
  • 中科院上高院,协鑫,和数“能源数字化智能管控”合作项目开启
  • 在Mac上安装MongoDB 5.0
  • 手把手教你如何实现TNAS与云盘之间的无缝同步技巧
  • 【约会云栖】从初中至大学,我见证了科技变革的历程。
  • 【MySQL索引与优化篇】索引优化与查询优化
  • DevChat:VSCode中基于大模型的AI智能编程助手
  • Scrum master的职责
  • 数据结构:算法(特性,时间复杂度,空间复杂度)
  • SaaS 出海,如何搭建国际化服务体系?(一)
  • 数据结构与算法-(7)---栈的应用拓展-前缀表达式转换+求值
  • 泛型的使用
  • docker导致远程主机无法访问,docker网段冲突导致主机网络异常无法访问
  • Python的web自动化学习(三)Selenium的显性、隐形等待
  • Linux--文件操作
  • 硬件知识积累 RS422接口
  • 项目经验分享|openGauss 陈贤文:受益于开源,回馈于开源
  • 实时检测并识别视频中的汽车车牌
  • 使用 pyspark 进行 Clustering 的简单例子 -- KMeans
  • LeetCode75——Day22
  • 【SOC基础】单片机学习案例汇总 Part1:电机驱动、点亮LED
  • 【HTML】HTML基础知识扫盲
  • 【Mybatis-Plus】常见的@table类注解
  • Android WMS——操作View(七)
  • 算法__数组排序_冒泡排序直接选择排序快速排序
  • ByteBuffer的原理和使用详解
  • 【MySql】10- 实践篇(八)
  • 【三方登录-Apple】iOS 苹果授权登录(sign in with Apple)之开发者配置一
  • 可视化 | 数据可视化降维算法梳理