Selenium系列(二)对浏览器的常用操作

1、常用操作

介绍几种对浏览器常用的操作:

  • 最大化、最小化浏览器
  • 控制、获取浏览器大小
  • 获取当前标签页title、url
  • 前进、后退、刷新
  • 执行js语句
  • 打开、关闭新的标签页
  • 滚动页面

2、代码实践

最大化、最小化浏览器

from selenium import webdriver
import time

# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 最大化浏览器
driver.maximize_window()
time.sleep(2)
# 最小化浏览器
driver.minimize_window()
time.sleep(2)
# 退出浏览器
driver.quit()

控制、获取浏览器大小

from selenium import webdriver
import time

# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 获取浏览器大小
size = driver.get_window_size()
print(f"浏览器大小为:{size}")
# 设置浏览器大小
driver.set_window_size(1200, 1200)
time.sleep(2)
# 退出浏览器
driver.quit()

执行结果为:

浏览器大小为:{'width': 1200, 'height': 757}

获取当前标签页title、url

from selenium import webdriver
import time

# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 获取当前标签页的title
print(f"标签页title: {driver.title}")
# 获取当前页的url
print(f"标签页url: {driver.current_url}")
# 获取当前浏览器的名称
print(f"标签页name: {driver.name}")
# 获取当前页的html
print(f"标签页html: {driver.page_source}")
# 退出浏览器
driver.quit()

执行结果为:

标签页title: 百度一下,你就知道
标签页url: https://www.baidu.com/
标签页name: chrome
标签页html: <html>...</html>

前进、后退、刷新

from selenium import webdriver
import time

# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
# 后退
driver.back()
time.sleep(2)
# 前进
driver.forward()
time.sleep(2)
# 刷新
driver.refresh()
time.sleep(2)
# 退出浏览器
driver.quit()

执行js语句

# 同步执行js
driver.execute_script('console.log(222)')
# 异步执行js
driver.execute_async_script('alert(333)')

执行js语句还可以做很多其他事情,比如打开新的标签页、滚动页面等,下面简单介绍下:

打开、关闭新的标签页

  • 打开标签页只能通过js来操作
  • 可以通过句柄来切换标签页
from selenium import webdriver
import time

# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.baidu.com")
time.sleep(3)
# 打开新的标签页
js = "window.open('http://www.douban.com')"
driver.execute_script(js)
time.sleep(3)
# 获取当前标签页的句柄
print(driver.current_window_handle)
# 获取所有标签页的句柄
handles = driver.window_handles
print(handles)
# 切换标签页
driver.switch_to.window(handles[0])
time.sleep(3)
# 退出浏览器
driver.quit()

执行结果:

CDwindow-CD338EAC7549A3BCB337D9160779CA57
['CDwindow-CD338EAC7549A3BCB337D9160779CA57', 'CDwindow-BFDC2CC142D306ACB2E9363D486FBF41']

滚动页面

from selenium import webdriver
import time
import random

# 获取驱动
driver = webdriver.Chrome("../chromedriver")
# 访问网页
driver.get("http://www.douban.com")
# 滚动页面
js = f"var q=document.documentElement.scrollTop={random.randint(100, 999)}"
driver.execute_script(js)
time.sleep(2# 再次滚动
js = f"var q=document.documentElement.scrollTop={random.randint(100, 999)}"
driver.execute_script(js)
time.sleep(2)

# 退出浏览器
driver.quit()

参考文章:https://www.cnblogs.com/poloyy/p/12574439.html

你可能感兴趣的:(Selenium,selenium,chrome,python)