Selenium切换浏览器窗口

前言 本文讲解如何通过Selenium-Webdriver获取多个浏览器窗口句柄,并在浏览器窗口之间互相切换。 最近有同学问到这个问题,之前也写过该部分内容。现在单独拿出这部分,方便查找。 实现方式 #Baidu.py #www.testclass.cn #Altumn #2020-1-1 更新元素…

Selenium实现复制粘贴功能

写在前面 日常的UI自动化测试中,有时候会用到复制粘贴功能。 按照以往的操作方法,可能第一时间想到模拟键盘输入“Ctrl+C”和“Ctrl+V”。 在此之前也写过一篇包含此功能的文章:Selenium键盘操作事件 但是针对一些需要通过赋值实现复制粘贴功能的情景,存粹的模拟键盘输入就无法实现想要的效果…

Selenium操作浏览器Cookie

写在前面 Cookie通常来说是服务器发送给浏览器的数据组。 Cookie用于辨别用户身份,访问服务器时保持登录状态等功能。 有时我们需要获取浏览器中的cookie,用来验证存储的cookie是否正确。 Selenium WebDriver提供了操作Cookie的相关方法,可以获取、删除和添加coo…

Selenium获取网页源码

写在前面 Python+Selenium可以做网络爬虫。所以,我们可以从网页源码中爬出想要的信息。 Selenium的page_source方法可以获取到页面源码。获取到源码以后可以再查找自己想要的信息。 源码保存 为了方便查看网页源码,我们可以借用python提供的方法,将获取到的网页源码写入到h…

Selenium操作Iframe中的页面元素

写在前面 上一篇文章写了关于如何基于Selenium操作iframe中页面元素的内容,点击链接跳转详情: Selenium操作Frame中的页面元素 本文将继续讲解,如何使用Selenium操作iframe中的页面元素。 实践案例 在web应用中iframe一般用在网页内显示网页,或者显示文档中文档…

Selenium操作Frame中的页面元素

写在前面 在Web应用中经常会遇到网页中嵌套多个Frame框架的情况。这种情况下,如果直接去定位嵌套在Frame页面中的元素就会抛出NoSuchElementException异常。所以在操作嵌套在Frame框架上页面元素前,需要将页面焦点切换到Frame中。Selenium提供的switch_to…

Selenium定位一组元素

写在前面 在此之前写过一篇文章关于Selenium常用的8种元素基本定位方式。详情见链接:Selenium元素定位 文末也有关于如何定位一组元素的方法。不过有的小伙伴反映不方便查找,现把该部分内容单独列出。 Selenium定位一组元素 WebDriver提供了8种方法用于定位元素,同时还提供了8种…

Selenium对当前浏览器窗口截图

写在前面 在自动化测试中,截图可以帮助我们直观的定位错误、记录测试步骤。 同样,我们可以通过截取关键信息的图片,用以保留测试证迹。WebDriver提供了几种截图函数来截取当前窗口:get_screenshot_as_file()和save_screenshot() 。 第一种截图方法 #selec…

Selenium处理多选项下拉框列表

写在前面 上一篇文章讲解了单选项下拉框列表处理方式,点击链接跳转详情:Selenium处理单选项下拉框列表 单选项下拉框列表和多选项下拉框列表处理方法基本相同,都是通过使用WebDriver提供的Select类来处理下拉框。 本文详细讲解如何使用Selenium处理多选项下拉框列表。 通过\选项序号…

Selenium处理单选项下拉框列表

写在前面 UI自动化测试中,经常会遇到下拉框列表选项,常见的下拉框列表有:单选项下拉框,多选项下拉框。 WebDriver提供了Select类来处理下拉框。 本文详细讲解如何使用Selenium处理单选项下拉框列表。 遍历所有选项并打印选项相关属性值 首先针对单选项下拉框列表进行遍历操作,这样我们就…

Selenium常用的元素等待方法

写在前面 日常的UI自动化测试,单步调试的时候元素可以定位到,并且可以正常操作,但是在跑测试案例流程的时候反而报错。这时就需要考虑是否界面的切换,或者功能的跳转缓慢导致元素未加载完成就执行了操作,所以我们需要加上元素等待。WebDriver提供了几种类型的等待:强制等待、显式等待和隐式等待。 强制等…

Selenium上传文件

写在前面 日常的UI自动化测试过程中,经常会遇到文件上传的业务操作。对于通过input标签实现的上传功能, 我们可以直接利用Selenium提供的方法send_keys() 实现文件上传。这种文件上传实现方式是将本地文件的路径作为一个值放在input 标签中,然后通过form表单将这个值提交给服务器…