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的滚动方法,滚动其实有几种高级方法的,后续有空补上

相关文章
|
1月前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)
【4月更文挑战第21天】本文介绍了Selenium中处理特殊测试场景的方法,如鼠标悬停。Selenium的Actions类提供了鼠标悬停功能,用于模拟用户在网页元素上的悬停行为。文中通过实例展示了如何使用Actions悬停并展开下拉菜单,以及在搜索时选择自动补全的字段。代码示例包括了打开百度首页,悬停在“更多”元素上显示下拉菜单并点击“音乐”,以及在搜索框输入关键词并自动补全的过程。
49 0
|
1月前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(&lt;https://www.sojump.com/m/2792226.aspx/&gt;)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
29 0
|
1天前
|
Web App开发 XML 安全
《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)
【6月更文挑战第14天】本文介绍了如何使用TestNg进行自动化测试,特别是通过变量参数启动不同浏览器的步骤。
14 5
|
2天前
|
前端开发 测试技术 UED
使用Selenium WebDriver模拟用户操作防止滑动条验证
在进行Web自动化测试时,经常会遇到各种前端验证机制,如滑动条验证,这些机制设计用来防止自动化脚本模拟用户行为。在本文中,我们将探讨如何使用Selenium WebDriver来模拟用户操作,以规避这些验证机制。
|
6天前
|
数据采集 Web App开发 前端开发
Selenium:自动化Web浏览器操作的强大工具
**Selenium** 是一款用于自动化Web应用测试和模拟用户行为的工具,支持多种浏览器和编程语言。安装包括安装Selenium库和对应浏览器的WebDriver。基本用法包括导入库、启动浏览器、查找与操作页面元素、等待元素加载及关闭浏览器。在实际项目中,Selenium常用于Web测试、爬虫、自动化表单填写等,优点是跨平台、模拟真实用户行为,但性能较低且依赖浏览器。
24 9
|
26天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十九)-java+ selenium自动化测试-隐藏元素定位与操作(详解教程)
【5月更文挑战第13天】本文主要讨论了在Selenium自动化测试中如何处理前端隐藏元素的问题。隐藏元素通常是通过`type="hidden"`或`style="display: none;"`属性实现的,它们在页面上不可见,但仍然存在于HTML代码中。Selenium可以定位到这些隐藏元素,但无法直接进行点击、输入等操作,会报错“ElementNotInteractableException”。
43 3
|
27天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
【5月更文挑战第12天】本文介绍了WebDriver中用于判断元素状态的三个方法:`isEnabled()`、`isSelected()`和`isDisplayed()`。`isSelected()`检查元素是否被选中,通常用于勾选框。`isDisplayed()`则用来判断元素是否在页面上可见。`isEnabled()`方法确定元素是否可操作,例如是否能点击或输入内容。
33 1
|
1月前
|
编解码 测试技术 Python
【如何学习Python自动化测试】—— 浏览器操作
【如何学习Python自动化测试】—— 浏览器操作
10 0
|
1月前
|
存储 前端开发 测试技术
《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
【4月更文挑战第27天】本文介绍了使用Java+Selenium进行Web自动化测试时,如何遍历和操作多选按钮的方法。文章分为两个部分,首先是一个本地HTML页面的示例,展示了多选按钮的HTML代码和页面效果,并详细解释了遍历多选按钮的思路:找到所有多选按钮的共同点,通过定位这些元素并放入list容器中,然后使用for循环遍历并操作。 第二部分介绍了在JQueryUI网站上的实战,给出了被测网址,展示了代码设计,同样使用了findElements()方法获取所有多选按钮并存储到list中,然后遍历并进行点击操作。最后,文章对整个过程进行了小结,并推荐了作者的其他自动化测试教程资源。
24 0
|
1月前
|
前端开发 测试技术 Python
《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
【4月更文挑战第25天】本文介绍了自动化测试中如何处理单选和多选按钮的操作,包括它们的定义、HTML代码示例以及如何判断和操作这些元素。文章通过一个简单的HTML页面展示了单选和多选框的示例,并提供了Java+Selenium实现的代码示例,演示了如何检查单选框是否选中以及如何进行全选操作。
29 0