selenium 教程

Selenium是一款自动化测试工具,它可以在WEB应用程序中模拟用户的操作,自动化执行测试案例,以达到自动化测试的目的。Selenium支持多种编程语言,包括JavaPython、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内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(13) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部