02_selenium各种神奇操作1
需积分: 0 103 浏览量
更新于2022-08-03
收藏 2.03MB PDF 举报
【Selenium 概述】
Selenium 是一个强大的自动化测试工具,尤其在Web应用程序的测试领域。它支持多种浏览器,如Chrome、Firefox等,并且能够模拟用户的各种操作,如点击、输入、滚动等,使得测试过程更加真实。Selenium 通过WebDriver接口与浏览器进行交互,WebDriver 是一个API,允许程序员用各种编程语言控制浏览器。
【Selenium 的基本操作】
1. **初始化浏览器**: 在Python中使用Selenium时,首先需要导入`webdriver`模块,然后通过`Chrome()`方法实例化一个Chrome浏览器对象,如:
```python
from selenium.webdriver import Chrome
web = Chrome()
```
2. **导航到URL**: 使用`get()`方法可以将浏览器导航到指定的URL,例如访问拉勾网:
```python
web.get("http://lagou.com")
```
3. **元素定位与交互**:
- `find_element_by_*`: 这些方法用于找到页面上的特定元素,例如通过XPath定位元素:
```python
btn = web.find_element_by_xpath('//[@id="changeCityBox"]/ul/li[1]/a')
btn.click()
```
- `send_keys()`: 用于向元素发送按键,模拟用户输入,例如搜索“python”:
```python
web.find_element_by_xpath('//*[@id="search_input"]').send_keys("python")
```
4. **键盘事件模拟**:
使用`Keys`类可以模拟键盘事件,例如按下回车键:
```python
from selenium.webdriver.common.keys import Keys
web.find_element_by_xpath('//*[@id="search_input"]').send_keys("python", Keys.ENTER)
```
5. **处理多个元素**:
当需要处理页面上的一组元素时,可以使用`find_elements_by_*`方法,返回一个元素列表,例如获取所有职位:
```python
ls = web.find_elements_by_xpath('//*[@id="s_position_list"]/ul/li')
for item in ls:
name = item.find_element_by_xpath('./div[1]/div[1]/div[1]/a/h3').text
addr = item.find_element_by_xpath('./div[1]/div[2]').text
print(name, addr)
```
6. **等待与延迟**:
- `time.sleep()`: 可以使用Python内置的`time`模块进行固定时间的延迟,以确保页面加载完成或等待某个操作执行完毕。
- `WebDriverWait`: Selenium 提供了一个更智能的等待方式,可以根据条件等待,如等待某个元素出现或消失。这比硬编码的`time.sleep()`更灵活。
7. **异常处理**:
在编写Selenium脚本时,通常需要包含异常处理,因为网页结构可能会发生变化或者元素可能不存在,因此要处理可能抛出的`NoSuchElementException`或其他异常。
8. **关闭浏览器**:
在完成所有操作后,记得关闭浏览器:
```python
web.quit()
```
以上就是Selenium的一些基础操作和使用示例。通过这些操作,我们可以实现对Web页面的自动化控制,进行功能测试、数据抓取等多种任务。在实际使用中,还可以结合其他库,如BeautifulSoup进行网页解析,或者使用logging记录测试日志,提升自动化测试的效率和质量。
蒋寻
- 粉丝: 30
- 资源: 319
最新资源
- 数独游戏app,for安卓
- 我的编程作品:《声音、光和运动》
- SQlServer2005编程入门经典-触发器和存储过程教程pdf最新版本
- 车辆树木检测21-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- SQL经典语句大全及技巧汇集chm版最新版本
- SQLServer入门到精通HTML版最新版本
- 医疗领域数据相关的标准清单.xlsx
- xilinx FPGA利用can IP实现can总线通信verilog源码,直接可用,注释清晰 vivado实现,代码7系列以上都兼容
- SQL2005教程PPT讲义(初级入门基础)最新版本
- CC2530无线点对点传输协议zigbee BasicRF代码实现一发一收无线控制LED灯亮灭.zip
- CC2530无线点对点传输协议zigbee BasicRF代码实现一发一收无线通讯质量检测(误包率、RSSI 值和接收数据包个数等).zip
- comsol仿真,磁屏蔽 铁氧体做磁屏蔽和没有屏蔽时的接受端磁密大小,及屏蔽上的磁密分布
- 四足机器人设计原理与应用探索
- 车辆检测1-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 食品数据相关标准清单.xlsx
- SQLServer入门基础15天掌握最新版本