1.send_keys 方法模拟键盘键入
此方法类似于模拟键盘键入。以在百度首页搜索框输入“Selenium”为例,代码如下:
# _*_ coding:utf-8 _*_
"""
name:zhangxingzai
date:2023/2/13
form:《Selenium 3+Python 3自动化测试项目实战》
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 通过id,在搜索输入框中输入文本“Selenium”
driver.find_element(By.ID, 'kw').send_keys('Selenium')
2.text 方法获取文本值
Selenium 提供了 text 方法用于获取文本值,即 HTML 标签“<a></a>”之间的文字。以在
百度首页超链接“新闻”为例,代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 通过link_text定位,点击‘新闻’超链接
driver.find_element(By.LINK_TEXT, '新闻').click()
3.get_attribute()获取属性值
以百度首页的“百度一下”按钮为例,获取属性 value 对应的值(页面元素如图所示),
可以用 get_attribute 方法来实现。
代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 执行后,控制台打印“百度一下”
print(driver.find_element(By.ID, 'su').get_attribute('value'))
输出结果为:
4.set_window_size()方法控制浏览器窗口大小
from selenium import webdriver
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 参数数字为像素
print("设置浏览器宽 480、高 500 显示")
driver.set_window_size(480, 500)
5.maximize_window() 方法控制浏览器窗口最大化
from selenium import webdriver
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 参数数字为像素
print("设置浏览器宽 480、高 500 显示")
driver.set_window_size(480, 500)
# 将窗口最大化
driver.maximize_window()
6.控制浏览器后退、前进
在使用 Web 浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过
的网页之间切换,WebDriver 还提供了对应的 back()和 forward()方法来模拟后退和前进按
钮。下面通过例子演示这两个方法的使用。
from selenium import webdriver
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 访问百度首页
first_url = 'http://www.baidu.com'
print("now access %s" %(first_url))
driver.get(first_url)
# 访问新闻页
second_url='http://news.baidu.com'
print("now access %s" %(second_url))
driver.get(second_url)
# 返回(后退)到百度首页
print("back to %s " %(first_url))
driver.back()
# 前进到新闻页
print("forward to %s" %(second_url))
driver.forward()
为了看清楚脚本的执行过程,这里每操作一步都通过 print()打印当前的 URL 地址。
7.refresh()方法模拟浏览器刷新
from selenium import webdriver
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
#刷新当前页面
driver.refresh()
8.submit():提交表单。
有些搜索框不提供搜索按钮,而是通过按键盘上的回车键完成搜索内容的提交,这时可以通过 submit()模拟。
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 搜索框输入‘python’
driver.find_element(By.ID, 'kw').send_keys('python')
# 提交表单
driver.find_element(By.ID, 'kw').submit()
9.clear() 清除输入框值
以在百度搜索框输入“python”,再清除为例,示例代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 搜索框输入‘python’
driver.find_element(By.ID, 'kw').send_keys('python')
# 清除内容
driver.find_element(By.ID, 'kw').clear()
10.close()关闭当前窗口
from selenium import webdriver
driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 关闭浏览器
driver.close()
quit()也是关闭浏览器,但是是退出驱动程序并关闭所有相关窗口