Selenium系列(二) - 详细解读针对浏览器的操作

简介: Selenium系列(二) - 详细解读针对浏览器的操作

如果你还想从头学起Selenium,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1680176.html

 

其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)

 

控制浏览器有哪些操作?


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

点击右边目录即可跳转哦! -------------->>>>>>>>>>

 

最大化、最小化浏览器


from time import sleep
from selenium import webdriver
# 加载浏览器驱动
driver = webdriver.Chrome("../resources/chromedriver.exe")
# 访问网址
driver.get("https://www.baidu.com")
# 最大化浏览器
driver.maximize_window()
sleep(2)
# 最小化浏览器
driver.minimize_window()


控制、获取浏览器大小


# 加载浏览器驱动
driver = webdriver.Chrome("../resources/chromedriver.exe")
# 访问网址
driver.get("https://www.baidu.com")
# 获取浏览器大小
size = driver.get_window_size()
print(f"浏览器大小:{size}")
sleep(2)
# 设置浏览器大小
driver.set_window_size(1200, 1000)


执行结果

浏览器大小:{'width': 1936, 'height': 1056}


知识点

get_window_size() 返回的是字典

 

获取当前标签页title、url


# 加载浏览器驱动
driver = webdriver.Chrome("../resources/chromedriver.exe")
# 访问网址
driver.get("https://www.baidu.com")
# 获取当前标签页的title
print(f"标签页title:{driver.title}")
# 获取当前标签页的url
print(f"标签页url:{driver.current_url}")
# 获取当前浏览器的名称(不常用)
print(f"标签页name:{driver.name}")
# 获取当前页面完整的HTML代码
(不常用)
 print(f"标签页page_source:{driver.page_source}")


执行结果

标签页title:百度一下,你就知道

标签页url:https://www.baidu.com/

标签页name:chrome

标签页page_source:<html><head>...</head></html>

 

前进、后退、刷新


# 前进
driver.forward()
# 后退
driver.back()
# 刷新
driver.refresh()


执行js语句


# 同步执行js
js='console.log(2)'
driver.execute_script(js)
# 异步执行js
driver.execute_async_script("alert(2)")


打开、关闭新标签页


# 打开新的标签页
js = 'window.open("https://www.baidu.com/")'
driver.execute_script(js)
# 获取当前标签页句柄
print(driver.current_window_handle)
# 获取浏览器所有标签页句柄
handles = driver.window_handles
print(handles)
# 切换标签页
driver.switch_to.window(handles[-1])
# 关闭当前标签页
driver.close()


执行结果

CDwindow-24C58D8D81CCC95D5D55E887402B7E0A

['CDwindow-24C58D8D81CCC95D5D55E887402B7E0A', 'CDwindow-04C35D93CD4A04351BAC1CFFA36378CA', 'CDwindow-AC59AC67423FB8463AF0C534C7A47098']


知识点

  • 打开新的标签页只能通过 js 来操作
  • 可以根据标签页的句柄来切换标签页
  • 操作标签页的好处就是,可以只打开一个浏览器但可以访问多个不同的网页;这在后续集成单元测试框架(unittest、pytest)的时候会有很大的帮助

 

滚动页面


# 滚动随机高度
js = "var q=document.documentElement.scrollTop=" + random.randint(100, 999)
driver.execute_script(js)


知识点

这里暂时只介绍js的滚动方法,滚动其实有几种高级方法的,后续有空补上

相关文章
|
2月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
111 6
|
2月前
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
349 1
|
3月前
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
373 6
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
|
2月前
|
Web App开发
Selenium操作360浏览器
Selenium操作360浏览器
42 0
|
4月前
|
数据采集 Web App开发 测试技术
使用Selenium调试Edge浏览器的常见问题与解决方案
在互联网数据采集领域,Selenium常用于自动化网页爬取。针对使用Edge浏览器时遇到的启动远程调试失败、访问受限及代理IP设置等问题,本文提供了解决方案。通过特定命令启动Edge的远程调试模式,并利用Python脚本配合Selenium库,可实现代理IP、User-Agent的设定及Cookie管理等高级功能,有效提升爬虫稳定性和隐蔽性。遵循步骤配置后,即可顺畅执行自动化测试任务。
921 1
使用Selenium调试Edge浏览器的常见问题与解决方案
|
5月前
|
数据采集 Web App开发 JavaScript
快速参考:用C# Selenium实现浏览器窗口缩放的步骤
在C#结合Selenium的网络爬虫应用中,掌握浏览器窗口缩放、代理IP、cookie与user-agent设置至关重要。本文详述了如何配置代理(如亿牛云加强版),自定义用户代理,启动ChromeDriver,并访问目标网站如抖音。通过执行JavaScript代码实现页面缩放至75%,并添加cookie增强匿名性。此策略有效规避反爬机制,提升数据抓取的准确度与范围。代码示例展示了整个流程,确保爬虫操作的灵活性与高效性。
120 3
|
5月前
|
Web App开发 测试技术 持续交付
Selenium 跨浏览器和跨平台
Selenium 跨浏览器和跨平台
|
5月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
106 3
|
4月前
|
Web App开发 Python
[selenium]浏览器基本操作
[selenium]浏览器基本操作
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
130 5

热门文章

最新文章