【selenium】定位页面元素

简介: 简介:【selenium】定位页面元素

一、已被废弃的用法


1、根据id定位

  • 定义一个元素
find_element_by_id()
  • 定义多个元素
find_elements_by_id()

2、根据class定位

  • 定义一个元素
find_element_by_class_name()
  • 定义多个元素
find_elements_by_class_name()

3、根据name定位

  • 定义一个元素
find_element_by_name()
  • 定义多个元素
find_elements_by_name()

4、根据tag定位

  • 定义一个元素
find_element_by_tag_name()
  • 定义多个元素
find_elements_by_tag_name()

5、根据xpath定位

  • 定义一个元素
find_element(By.XPATH, ' ')
  • 定义多个元素
find_elements_by_xpath()

6、根据css定位


  • CSS选择器参考手册链接:

https://www.w3school.com.cn/cssref/css_selectors.asp

  • 定义一个元素
find_element_by_css_selector()
  • 定义多个元素
find_elements_by_css_selector()

7、根据link定位

定义文本链接

  • 定义一个元素
find_element_by_link_text()
• 1
  • 定义多个元素
find_elements_by_link_text()

8、根据partial_link定位

定义部分文本链接

  • 定义一个元素
find_element_by_partial_link_text()
• 1
  • 定义多个元素
find_elements_by_partial_link_text()


二、现在的写法


需要先导入:

from selenium.webdriver.common.by import By

将之前的 find_element_by_* 命令改用 find_element()命令

如:

text_label = driver.find_element_by_xpath('//*[@id="kw"]')

改为:

text_label = driver.find_element(By.XPATH, '//*[@id="kw"]')



三、实例


结合上一节,进行实例演示,以百度为例:

首先,先手动查看一下搜索框信息和搜索按钮image.pngimage.png

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
# 访问百度
driver.get('https://baidu.com')
# 等待3秒
time.sleep(3)
# 定位到搜索框
text_label = driver.find_element(By.XPATH, '//*[@id="kw"]')
# 在搜索框中输入   CSDN
text_label.send_keys('CSDN')
# 等待3秒
time.sleep(3)
# 清楚搜索框内容
text_label.clear()
# 等待3秒
time.sleep(3)
# 定位到“百度一下”按钮
button = driver.find_element(By.XPATH, '//*[@id="su"]')
# 输出按钮元素是否可见
print(button.is_displayed())
# 输出按钮的大小
print(button.size)
# 关闭所有页面
driver.quit()

1ea9fd621bac41709ac0826d87d7fcde.gif

相关文章
|
1月前
|
Web App开发 JavaScript 前端开发
selenium的常见表单元素操作(二)
selenium的常见表单元素操作(二)
|
28天前
|
Web App开发 前端开发 测试技术
Selenium 4新特性解析:关联定位器及其他创新功能
【10月更文挑战第6天】Selenium 是一个强大的自动化测试工具,广泛用于Web应用程序的测试。随着Selenium 4的发布,它引入了许多新特性和改进,使得编写和维护自动化脚本变得更加容易。本文将深入探讨Selenium 4的一些关键新特性,特别是关联定位器(Relative Locators),以及其他一些重要的创新功能。
111 2
|
1月前
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
|
1月前
|
Web App开发 数据采集 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(二)
JavaScript动态渲染页面爬取——Selenium的使用(二)
|
1月前
|
Web App开发 Java 测试技术
selenium的常见表单元素操作(一)
selenium的常见表单元素操作(一)
|
3月前
|
JavaScript 前端开发
[selenium]相对定位器
[selenium]相对定位器
|
3月前
|
JavaScript Python
[selenium]取值元素文本属性样式
[selenium]取值元素文本属性样式
|
4月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
100 2
|
5月前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(七十一)-java+ selenium自动化测试-自定义类解决元素同步问题(详解教程)
【6月更文挑战第12天】本文介绍了如何创建一个自定义类库来解决自动化测试中的元素同步问题。作者指出,大部分错误源于元素因时间不同步而引发,为此提供了一种解决方案。在项目实践中,首先在`library`包下创建名为`MyWait`的类,包含一个方法`isElementPresent`,该方法通过循环尝试并等待指定元素出现,避免了直接使用时间等待可能导致的不准确性。之后,在测试类中调用此自定义方法,成功实现了元素同步。代码示例展示了如何在Java+Selenium自动化测试中应用这个自定义类。
57 2
|
28天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
93 5