Selenium浏览器、标签页操作基础总结
- 创建、设置和打开浏览器对象
这里设置的内容见代码注释部分。
from selenium import webdriver # 用于操作浏览器
from selenium.webdriver.chrome.options import Options # 用于设置谷歌浏览器
from selenium.webdriver.chrome.service import Service
def link():
q1 = Options()
# 禁用沙盒模式,增加兼容性
q1.add_argument('--no-sandbox')
# 保持浏览器的打开状态,即代码执行完毕时,浏览器仍不关闭(调试结束会关闭)
q1.add_experimental_option('detach', True)
# 设置浏览器驱动位置,打开浏览器,绑定设置,生成浏览器对象a1
a1 = webdriver.Chrome(service=Service(r'chromedriver.exe'), options=q1)
# 设置隐性等待时间10秒,即在等待时间内出现元素则立即执行,增加代码稳定性(体感上偶尔失效)
a1.implicitly_wait(10)
return a1
- 浏览器最大化、最小化、调整位置和尺寸、前进、后退、截图
a1 = link()
# 当前标签页中导航到目标网址,即不会新建新的标签页
a1.get(url="https://www.baidu.com/")
a1.get(url="https://www.bilibili.com/")
a1.get(url="https://www.cnblogs.com/")
# 浏览器最小化
a1.minimize_window()
# 浏览器最大化
a1.maximize_window()
# 设置浏览器位置,x和y轴(非数学坐标系),y轴向下
a1.set_window_position(x=0,y=0)
# 设置浏览器尺寸,宽和高
a1.set_window_size(width=800,height=600)
# 浏览器截图,与当前浏览器大小和显示视角相关
a1.get_screenshot_as_file(filename="Your path.png")
# F5刷新当前网页,一些动态的元素定位可能变化
a1.refresh()
# 网页后退
a1.back()
# 网页前进
a1.forward()
3 网页(标签页)相关---打开和关闭浏览器,打开和切换标签页,导航到指定网址
a1 = link()
# 当前标签页中导航到目标网址,即不会新建新的标签页
a1.get(url="https://www.baidu.com/")
# 执行JavaScript打开一个新标签页
a1.execute_script("window.open('');")
# 获取窗口句柄并切换到新标签页
window_hand = a1.current_window_handle # 获取当前激活页的句柄
window_hands=a1.window_handles # 获取所有标签页的句柄,是个list,每个元素都是一个句柄
a1.switch_to.window(window_hand) # 切换激活页
# 将激活页导航到目标网址
a1.get("https://www.bilibili.com/")
# 关闭当前标签页,仅有一个标签页时关闭浏览器
a1.close()
# 退出浏览器
# a1.quit()