应用场景:
    1.元素信息过长
    2.动态属性元素

1、绝对路径 / 遇到同层级多个元素用下标表示,下标从1开始,自顶向下写

driver.find_element(By.XPATH,'/html/body/div[1]/div[1]/div[3]/div/div/form/span[1]/input').send_keys('我是丸子')

2、相对路径 // 自底向上尝试

driver.find_element(By.XPATH,'')

3、元素属性定位

driver.find_element(By.XPATH,'//input[@maxlength="255"]').send_keys('我是丸子')

4、多属性定位

driver.find_element(By.XPATH,'//input[@maxlength="255" and @id="kw"]').send_keys('我是丸子')

5、支持通配符 * 不管什么标签 只要任意属性=kw即可

driver.find_element(By.XPATH,'//*[@*="kw"]').send_keys('我是丸子')

6、模糊定位 成为部分属性值定位,starts-with(@属性名,"属性值")

#starts-with(字符串)  字符串以特定值开头
driver.find_element(By.XPATH,'//a[starts-with(@href,"http://news")]').click()

#ends-with() 是xpath语言2.0版本额度函数  而xpath1.0版本的语言没有此函数 selenium正好用的1.0版本的函数 所以不支持
driver.find_element(By.XPATH,'//a[ends-with(@href,"news.baidu.com")]').click()

7、切割字符串实现模糊匹配,substring(@属性名,字符长度)="属性值" 下标从1开始,substring(@href,8) 8代表从第八个字符开始

driver.find_element(By.XPATH,'//a[substring(@href,8)="news.baidu.com"]').click()

8、包含函数实现模糊匹配contains(@属性名,"属性值")

driver.find_element(By.XPATH,'//a[contains(@href,"news.baidu.com")]').click()

9、text()函数匹配

driver.find_element(By.XPATH,'//a[text()="新闻"]').click()
driver.find_element(By.XPATH,'//a[contains(text(),"新")]').click()

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐