已解决
Python的web自动化学习(四)Selenium的显性等待(元素定位)
来自网友在路上 168868提问 提问时间:2023-11-03 04:20:59阅读次数: 68
最佳答案 问答题库688位专家为你答疑解惑
引言:
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的基本定位的方法,后面持续更新具体结合实际操作用法
查看全文
99%的人还看了
相似问题
- 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性
- CSS中常用的伪元素选择器
- XmlElement注解在Java的数组属性上,以产生多个相同的XML元素
- Web 自动化神器 TestCafe(二)—元素定位篇
- 代码随想录算法训练营第一天|数组理论基础,704. 二分查找,27. 移除元素
- 代码随想录算法训练营第五十九天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
- JAXB:用XmlElement注解复杂类型的Java属性,来产生多层嵌套的xml元素
- Arcgis js Api日常天坑问题3——加载geojson图层,元素无属性
- 〖大前端 - 基础入门三大核心之JS篇㊳〗- DOM访问元素节点
- 力扣.82删除链表中的重复元素(java语言实现)
猜你感兴趣
版权申明
本文"Python的web自动化学习(四)Selenium的显性等待(元素定位)":http://eshow365.cn/6-30780-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: C#学习系列之虚方法和多态
- 下一篇: 【算法专题】双指针—有效三角形的个数