通过selenium webdriver操作网页前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
from selenium import webdriver driver = webdriver.Ie(executable_path = "e:\\IEDriverServer") #打开浏览器 driver.get("http://wenku.baidu.com") #输入网址 driver.back() #向后退 driver.forward() #向前进 driver.refresh() #刷新页面 driver.set_page_load_timeout(2) #设置超时等待的时间,超过不再等待 try: #捕获超时异常 driver.get("http://www.sohu.com") ... except Exception,e: ... print e ... Message: Timed out waiting for page to load. driver.maximize_window() #窗口最大化 driver.get_window_position() #获取坐标位置 {'y': -8, 'x': 1672} driver.name #判断使用的浏览器 u'internet explorer' driver.set_window_position(y=200, x=400) #设置浏览器坐标 #y:指的上下走,屏幕最顶部y=0 ;x:指的左右走 ,最左边x=0,不再当前屏幕的会出现负数 #浏览器最大化的状态再去设置坐标就不起作用了 driver.get_window_position()['x'] #获取x轴的位置 2335 driver.get_window_position()['y'] #获取y轴的位置 98 driver.get_window_size() #获取浏览器的窗体大小 {'width': 160, 'height': 32} driver.get_window_size()['width'] #获取浏览器的宽度 160 driver.get_window_size()['height'] #获取浏览器的高度 32 driver.set_window_size(100,200) #设置浏览器的窗体大小 print driver.title #获取页面title,可以用于做断言看打开的页面对不对 搜狐 assert u"搜狐" == driver.title #断言标题是否正确 assert u"搜狐2" == driver.title #断言标题出错 Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError driver.page_source() #获取网页源码,返回的其实是unicode字符串 #抓取页面源码时,webdriver可以触犯页面上的js动态数据,但是它的缺点是比较慢;之前讲过的 #request抓取源码快,但只适用于静态页面,无法抓取js的动态页面内容 #抓取源码是非常重要的,可以随意操作 driver = webdriver.Ie(executable_path = "e:\\IEDriverServer") driver.get("http://www.iciba.com") driver.page_source[:50] #获取第50行的页面源码 u'<html><head><style></style><avalon class="avalonHi' u"热门词汇" in driver.page_source #判断指定字段是不是在页面源码中存在 True driver.page_source.encode("gbk","ignore") #将页面源码转码成中文,加ignore避免无法识别的生僻 字报错 html=driver.page_source.encode("gbk","ignore") #将页面源码转成html文件 >>> with open("e:\\1.html","w"): ... pass ... >>> with open("e:\\1.html","w") as fp: ... fp.write(html) ... driver.current_url #获取当前页面的url u'http://www.iciba.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】