2. 控制浏览器
WebDriver主要提供操作页面上各种元素的方法,同时,它还提供了操作浏览器的一些方法,控制浏览器窗口大小,操作浏览器前进,后退等。
2.1 控制浏览器窗口大小
from selenium import webdriver
chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver_path)
driver.get("http://www.baidu.com")
driver.set_window_size(500, 500) # 设置窗口大小为 500 x 500
driver.quit()
2.2 控制浏览器后退,前进
from selenium import webdriver
chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver_path)
url1 = "http://www.baidu.com"
print("正在打开第一个网页--->", url1)
driver.get(url1)
url2 = "http://news.baidu.com"
print("正在打开第二个网页---->", url2)
driver.get(url2)
print("后退到第一个网页,--->百度首页!!")
driver.back()
print("前进到第二个网页,---> 新闻页!!!")
driver.forward()
driver.quit()
2.3 模拟浏览器刷新
from selenium import webdriver
chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver_path)
driver.get("http://www.baidu.com")
# 刷新该页面
driver.refresh()
driver.quit()
3 WebDriver中常用方法
前面我们已经知道了如何定位元素,但定位只是第一步,定位之后还需要对这个元素进行操作,比如,单击,输入等,常用的几个方法如下:
1. clear() 清除文本
2. send_keys(value) 模拟按键输入
3. click() 单击元素
3.1 模拟打开百度首页,在搜索框输入内容,并点击搜索按钮 (测试上面三个方法)
from selenium import webdriver
chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver_path)
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").clear() # 定位到百度输入框并清空
driver.find_element_by_id("kw").send_keys("selenium") # 定位到百度输入框输入selenium
driver.find_element_by_id("su").click() # 定位到百度搜索按钮并点击,模拟搜索操作
# driver.quit()
# 以上分三步实现搜索只是为了模拟三个方法,是可以一步写完成的
3.2 模拟表单提交: submit()
4. submit 提交
有些搜索框不提供搜索按钮,而是通过按键盘上的回车键完成搜索内容的提交,这时就可以使用submit()
from selenium import webdriver
chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver_path)
driver.get("http://www.baidu.com")
search_text = driver.find_element_by_id("kw") # 获取百度输入框
search_text.send_keys("selenium") # 在输入框内输入内容
search_text.submit() # 提交
# driver.quit()
————————————————————————————————————————————————————————————————————————————————————————
5. size 返回元素的尺寸
6. text 获取元素的文本
7. get_attribute(name) 获得属性值
8. is_displayed() 返回该元素是否用户可见
3.3 测试上面四组方法
from selenium import webdriver
chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver_path)
driver.get("http://www.baidu.com")
size = driver.find_element_by_id("kw").size # 获取输入框的尺寸
print(size)
text = driver.find_element_by_id("s-bottom-layer-right").text # 获取百度首页底部备案信息
print(text)
attribute = driver.find_element_by_id("kw").get_attribute("type") # 获取输入框type属性
print(attribute)
rst = driver.find_element_by_id("kw").is_displayed() # 返回元素是否可见
print(rst)
# driver.quit()
4 鼠标操作
在WebDriver中,与鼠标操作的相关方法都封装在了ActionChains类中,常用方法有:
from selenium.webdriver import ActionChains
1. perform() 执行ActionChains类中存储的所有行为
2. context_click() 右击
3. double_click() 双击
4. drag_and_drop() 拖动
5. move_to_element() 鼠标悬停
4.1 鼠标悬停操作
from selenium import webdriver
# 导入
from selenium.webdriver import ActionChains
chrome_driver_path = r"C:\Users\Administrator\Envs\selenuimAutoTest\Lib\site-packages\selenium\webdriver\chrome\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_driver_path)
driver.get("http://www.baidu.com")
above = driver.find_element_by_link_text("更多") # 定位到要悬停的元素
ActionChains(driver).move_to_element(above).perform() # 执行鼠标悬停操作
# driver.quit()