Selenium是一款自动化测试工具,它可以在WEB应用程序中模拟用户的操作,自动化执行测试案例,以达到自动化测试的目的。Selenium支持多种编程语言,包括Java、Python、C#、Ruby等。本篇文章将介绍Selenium的使用方法、常用API以及实际案例。
一、Selenium的使用方法
1. 安装Selenium
Selenium可以通过pip,即Python包管理工具来安装。打开终端输入以下命令即可:
```
pip install selenium
```
2. 导入Selenium库
使用Selenium首先需要导入Selenium库:
```python
from selenium import webdriver
```
3. 创建WebDriver对象
Selenium提供了多种WebDriver,包括ChromeDriver、FirefoxDriver、IeDriver等。选择相应的WebDriver之后,创建WebDriver对象即可。
以ChromeDriver为例:
```python
driver = webdriver.Chrome()
```
这个语句会在本地计算机上启动一个Chrome浏览器。
4. 访问一个网站
使用get()函数来访问一个网站:
```python
driver.get("https://www.baidu.com")
```
5. 查找元素
查找元素是Selenium中非常重要的一个操作。通过不同的查找方式,我们可以找到网页中的元素,如输入框、按钮、链接等。常用的查找方式有以下几种:
(1)find_element_by_id()
根据元素id查找元素,如:
```python
elem = driver.find_element_by_id("kw")
```
(2)find_element_by_name()
根据元素name属性查找元素,如:
```python
elem = driver.find_element_by_name("wd")
```
(3)find_element_by_xpath()
根据元素xpath查找元素,如:
```python
elem = driver.find_element_by_xpath('//*[@id="kw"]')
```
(4)find_element_by_css_selector()
根据元素的样式选择器查找元素,如:
```python
elem = driver.find_element_by_css_selector(".s_ipt")
```
6. 操作元素
查找到元素之后,我们可以对元素进行一些操作。常见的元素操作包括清空输入框、输入文本、点击按钮等。
(1)清空输入框
```python
elem.clear()
```
(2)输入文本
```python
elem.send_keys("Selenium")
```
(3)点击按钮
```python
button = driver.find_element_by_id("su")
button.click()
```
7. 关闭WebDriver对象
使用close()函数来关闭WebDriver对象:
```python
driver.close()
```
这个语句会关闭打开的浏览器窗口。
二、Selenium的常用API
Selenium提供了大量的API,这里介绍一些常用的API。
1. WebDriver对象API
(1)get(url)
访问一个网站,如:
```python
driver.get("https://www.baidu.com")
```
(2)back()
返回上一个网页,相当于浏览器的后退按钮,如:
```python
driver.back()
```
(3)forward()
跳转到下一个网页,相当于浏览器的前进按钮,如:
```python
driver.forward()
```
(4)refresh()
刷新当前网页,如:
```python
driver.refresh()
```
(5)close()
关闭当前窗口,如:
```python
driver.close()
```
(6)quit()
退出WebDriver(Gecko、Chrome、Edge)会话,关闭关联的所有窗口。如:
```python
driver.quit()
```
2. WebElement对象API
(1)click()
点击元素,如:
```python
elem = driver.find_element_by_id("su")
elem.click()
```
(2)clear()
清空输入框中的内容,如:
```python
elem.clear()
```
(3)send_keys(*value)
在输入框中输入文本或按键,如:
```python
elem.send_keys("Selenium")
```
(4)get_attribute(name)
获取元素的属性值,如:
```python
elem.get_attribute("value")
```
(5)text
获取元素的文本值,如:
```python
elem.text
```
三、Selenium实际应用案例
下面将介绍几个Selenium实际应用案例。
1. 网站自动登录和留言
自动登录和留言是Selenium一个常见应用场景。以CSDN网站为例:
```python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://passport.csdn.net/login")
# 输入用户名和密码
elem = driver.find_element_by_name("username")
elem.clear()
elem.send_keys("yourusername")
elem = driver.find_element_by_name("password")
elem.clear()
elem.send_keys("yourpassword")
# 提交登录表单
elem = driver.find_element_by_class_name("logging")
elem.click()
# 点击留言链接
elem = driver.find_element_by_link_text("留言")
elem.click()
# 输入留言内容
elem = driver.find_element_by_id("editor_views")
elem.send_keys("留言内容")
# 提交留言
elem = driver.find_element_by_id("submit")
elem.click()
# 关闭浏览器
driver.close()
```
2. 京东商品自动抢购
使用Selenium,可以自动实现京东商品的抢购。以一个手机膜的抢购为例:
```python
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
driver.get("https://item.jd.com/100021326620.html")
# 等待商品按钮可点击
while True:
try:
btn = driver.find_element_by_link_text("立即购买")
btn.click()
break
except:
time.sleep(0.1)
# 等待收货地址页面加载完成
while True:
try:
elem = driver.find_element_by_id("choose-list")
break
except:
time.sleep(0.1)
# 选择收货地址并提交
addr = driver.find_element_by_xpath('//div[@class="item item-selected"]')
addr.click()
elem = driver.find_element_by_link_text("去结算")
elem.click()
# 等待购物清单页面加载完成
while True:
try:
elem = driver.find_element_by_id("pay-list")
break
except:
time.sleep(0.1)
# 提交订单
elem = driver.find_element_by_link_text("提交订单")
Actions(driver).move_to_element(elem).click().perform()
# 关闭浏览器
driver.close()
```
以上是Selenium的基本使用方法和常用API,以及Selenium实际应用案例。通过Selenium可以大大提高测试效率和准确性,同时也可以实现其他很多有趣的应用。
壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。
我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复