首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Selenium :点击主页后,又出现了一个屏幕,加载了完全不同的新DOM

Selenium是一个自动化测试工具,用于模拟用户在网页上的操作,如点击、输入等。它可以通过编写脚本来执行这些操作,并对网页的响应进行验证和断言。Selenium支持多种编程语言,如Java、Python、C#等,可以根据开发者的喜好选择合适的语言进行开发。

在点击主页后,出现一个新的屏幕并加载了完全不同的新DOM,这可能是因为网页使用了异步加载或者动态加载的技术。异步加载是指网页在加载过程中,通过JavaScript等技术动态地加载部分或全部内容,而不需要刷新整个页面。动态加载是指网页在特定事件触发后,通过JavaScript等技术动态地向页面中添加或移除元素。

对于这种情况,可以使用Selenium的等待机制来等待新的DOM加载完成。可以使用显式等待或隐式等待来实现。显式等待是指在代码中设置等待条件,当条件满足时继续执行后续操作。隐式等待是指在代码中设置一个全局的等待时间,当页面加载完成或超过等待时间时继续执行后续操作。

推荐使用腾讯云的产品:腾讯云测试云(https://cloud.tencent.com/product/tc),它提供了全面的云端测试解决方案,包括自动化测试、性能测试、安全测试等,可以帮助开发者进行全面的测试工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

初学web自动化测试--笔记1

当然了,也可以直接用js的方式定位到元素并点击 窗口切换: 我们经常遇到点击元素之后,在新的标签页打开了对应的内容,此时如果要在新的标签页继续进行操作,那么需要进行标签的切换, 但是在用selenium...的时候,可能遇到的情况是在 新的窗口中打开了点击的页面,而不是新的标签页,这时候就需要进行窗口的切换....Document DOM: 除了上述的element dom, 每一个载入的html document 都是一个Document DOM, 对于这些document dom, 常用的部分属性如下,可以通过...我们点击页面之后,需要等待页面加载完成才能继续,此时最简单粗暴的方式是加上sleep的时间,但是这个操作是非常不推荐的,毕竟不同页面加载时间不一样,设长了,浪费时间,设置短了,还没有加载完成,其实我们可以用...#等待点击后的页面完成加载,等待的条件是 untile 后面的 lambda 匿名函数。

1.1K40
  • Python+Selenium笔记(十):元素等待机制

    (二) 隐式等待 一旦设置隐式等待时间,就会作用于这个WebDriver实例的整个生命周期(对所有的元素查找都生效),设置隐式等待时间后,Webdriver会在一定时间内持续检测和搜寻DOM,以便于查找一个或多个不是立即加载成功并可用的元素...,传的参数也可能不同 WebDriverWait(driver,10).until() 等待查找的元素可见并且可用,以便可以点击,返回定位到的元素 element_to_be_selected(locator...(locator) 等待至少有一个定位器查找的元素出现在网页中,返回一组元素 presence_of_element_located(locator) 等待定位器查找的元素出现在网页中,或者可以在DOM...,成功时返回True,否则返回false visibility_of(element) 参数:element,指一个元素 等待元素出现在DOM中,是可见的,并且宽和高都大于0,变为可见的,将返回一个元素...(同一个) visibility_of_element_located(locator) 等待元素出现在DOM中,是可见的,并且宽和高都大于0,变为可见的,将返回一个元素 alert_is_present

    2.9K50

    多语言自动化测试框架 Selenium 编程(C#篇)

    安装依赖 创建一个 C# 控制台项目,首先安装依赖包 Selenium.WebDriver,这个库提供了浏览器驱动接口的基础 API 和统一抽象。...因此需要先启动 Chrome 浏览器,再启动 demo 程序,以便减少 Chrome 浏览器新窗口的启动时间。 demo 程序启动后,会自动填充表单和提交,接着跳转到新的页面。...很多时候,页面不会短时间完成渲染,有些页面元素需要一段时间后才能出现。在使用 WebDriver 的时候,我们也可以根据需求决定在什么时候启动自动化操作。...当网页上的某些元素不是立即可用并且需要一些时间来加载时是很有用的。 隐式等待是告诉 WebDriver 如果在查找一个或多个不是立即可用的元素时轮询 DOM 一段时间。...Web元素交互:用于操纵表单的高级指令集 定位策略:在 DOM中 标识一个或多个特定元素的方法 元素的信息:html 元素的属性 下面来介绍不同 html 元素的操作方法示例。

    3.8K20

    Selenium自动化测试秘籍:解锁常用函数实战指南

    若页面发生跳转后未打开新的标签页,则不需要进行窗口的切换 3.2.窗口大小的设置 #窗⼝最⼤化 driver.maximize_window() #窗⼝最⼩化 driver.minimize_window...,如果出现了报错,我们是不知道的,可以通过抓拍来记录当时的错误场景,能更好的定位问题和解决问题 4.1.一般做法: filename = "D:\\PythonProject\\image\\test.png...使用selenium提供的Alert接口 处理一般步骤: 切换到弹窗 关闭弹窗(点击确定/取消) 5.1.警告弹窗+确认弹窗 页面上定位不到弹窗元素 出现了弹窗,页面其他元素也无法定位 即页面出现了弹窗...options.page_load_strategy = '加载方式' 页面加载主要有3种模式: normal:默认值,等待所有资源下载完毕 eager:DOM访问已经准备就绪,但诸如图像的其他资源可能仍在加载...下面就是eager状态: driver.get()默认情况下等待所有的资源加载完成之后才能继续往下执行,但是实际上主页面加载完成之后我们就可以继续执行自动化,若一直等待的话可能造成页面超时、元素找不到的问题

    8710

    Selenium异常集锦

    本文将介绍了常见的Selenium通用的异常以及特定于语言的异常。这是一个详尽的列表,当你在代码中遇到异常时可能会有所帮助。...与浏览器自动测试相关的场景中,经常会遇到未经检查的异常,因为这些测试涉及浏览器和操作系统的不同组合和版本,包括网络和异步加载等因素都会导致未检查异常的发生。...在Selenium测试自动化中通常会遇到这种情况,其中尝试对Web元素(例如按钮、标签、超链接等)进行相关操作,但该元素从视图中隐藏了。另一个示例是HTML中定义的具有隐藏类型的元素。...同一属性的不同属性名称可能因浏览器而异,元素加载和处理效率低下可能导致此异常。...要处理此异常,仅在确认Web元素的存在可见性之后,可以尝试等待页面完全加载并执行Selenium WebDriver命令。

    5.4K20

    用Python全自动下载抖音视频!

    「用Python在抖音扒了这些高颜值女神后,突然成了人生赢家」,文中简述了一名工程师利用Python+ADB+鹅厂的AI,一晚上关注了一千多个漂亮小姐姐。...充分体现了厂子里的大学生和工人们的不同,这里我不得不说一声×××牛皮... 曾经的我也独自一人在那个诺大的工厂思考人生,思考着我该何去何从。 ? 记得那时我也靠着刷抖音,度过那段煎熬的日子。...通过本次的实践发现Appium有时并不能很好的获取元素的定位,这可能就跟Web端的iframe页面一样。 所以针对找不到的元素,我直接对手机屏幕位置进行点击。...由于大家手机屏幕大小不同,这个参数肯定是会变化的,所以存在弊端,无法通用。 { 左右滑动切换图片 } ? ? ? 大致操作如上图。UP主的主页图漏了,请自行脑补,Python代码如下。...然后剪辑出一个「最美瞬间」系列的视频,机会不就来了嘛...

    1.4K10

    Python实现全自动下载抖音视频

    这篇文章主要介绍了基于Python实现全自动下载抖音视频,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 很多人喜欢玩抖音,我也喜欢看抖音小姐姐,可拿着手机一个个找视频太费劲...作为一个程序员,如何能在电脑前一边编程一边轻松地看抖音小姐姐呢? 下面利用Python,简单的三个步骤就可以将你喜欢的抖音小姐姐的视频自动下载下来了。...在电脑端下载安装完Charles后,需要配置证书,最后开启SSL监听。...通过本次的实践发现Appium有时并不能很好的获取元素的定位,针对找不到的元素,我直接对手机屏幕位置进行点击。 由于大家手机屏幕大小不同,这个参数肯定是会变化的,所以存在弊端,无法通用。...UP主的主页图漏了,请自行脑补,Python代码如下: import timeimport randomfrom appium import webdriverfrom selenium.webdriver.common.by

    1.2K10

    (数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)

    可以看出,利用selenium来进行网络数据采集与之前的方法最大的不同点在于对目标网页发起请求的过程,在使用selenium时,我们无需再伪装浏览器,且有了非常丰富的浏览器动作可以设置,譬如说之前我们需要对页面进行翻页操作...,并成功打开对应的浏览器之后,selenium中还存在着非常丰富的浏览器方法,下面我们就其中实用且常用的一些方法和类内的变量进行介绍:   假设我们构造了一个叫做browser的浏览器对象,可以使用的方法如下...关于主页面:   这里要额外介绍一下,我们在前面一大段中提到过很多次主页面这个概念,是因为在selenium控制浏览器时,无论浏览器中开了多少个网页,都只将唯一一个网页视为主页面,相应的很多webdriver...),浏览器随即跳转到一个新的页面:   这时我们运行下列代码: '''打印网页标题''' print(browser.title)   可以看到,虽然在我们的视角里,通过点击,进入到一个新的界面,但当我们利用对应方法获取当前页面标题时...,仍然是以之前的页面作为对象,这就涉及到我们之前提到的主页面的问题,当在原始页面中,因为点击事件而跳转到另一个页面(这里指的是新开一个窗口显示新界面,而不是在原来的窗口覆盖掉原页面),浏览器中的主页面依旧是锁定在原始页面中

    1.8K50

    《最新出炉》系列初窥篇-Python+Playwright自动化测试-1-环境准备与搭建

    它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简洁又强大。虽然诞生比较晚,但是现在发展得非常火热。...一方面这是IT技术领域的一个趋势,从业人需要时刻关注业内的新技术,新方向,不断提升自己的能力,或者给公司,团队带来新的idea,这样才能不断在职业生涯中稳步向前。...配置测试重试策略,捕获执行跟踪、视频、屏幕截图以消除薄片。3.3运行机制浏览器在不同进程中运行属于不同来源的 Web 内容。Playwright 与现代浏览器架构保持一致,并在进程外运行测试。...3.4完全隔离-快速执行浏览器上下文。Playwright 为每个测试创建一个浏览器上下文。浏览器上下文相当于一个全新的浏览器配置文件。这提供了零开销的完全测试隔离。...创建一个新的浏览器上下文只需要几毫秒。登录一次。保存上下文的身份验证状态并在所有测试中重用它。这绕过了每个测试中的重复登录操作,但提供了独立测试的完全隔离。3.5强大的工具代码生成器。

    17.5K113

    一文速学-selenium高阶性能优化技巧

    前言最近写的挺多自动化办公的selenium程序没有做优化,执行效率不高,启动浏览器又慢但是又可能出现其他不可控的因素,总结来说虽然放心运行但是又没那么好用,项目是写完了最后还是需要优化结尾的。...这个函数:from selenium.webdriver.support.ui import WebDriverWait比如我们现在需要等待一个弹窗事件,需要等待几秒的弹出时间,但是时间又是不可控的,可能...eager:等待 HTML 完全加载和解析完成,不等待 CSS 文件、图片加载完成,也不等待 JavaScript 脚本异步执行完成。这通常会在 DOMContentLoaded 事件触发后立即发生。...设置页面加载策略为 eager 模式意味着 WebDriver 会等待 DOM(文档对象模型)加载完成后立即返回,而不必等待所有相关资源(如样式表、图片、子框架)的加载。...如果页面的DOM结构在操作过程中发生了变化(例如,页面部分刷新或完全重新加载),缓存的元素可能会变得过时(stale),此时尝试对其进行操作会导致 StaleElementReferenceException

    1.1K23

    如何简便快捷使用python抓爬网页动态加载的数据

    一个例子是,我们打开京东主页,在搜索框输入关键词”乌鸡白凤丸“在返回的页面上显示的商品条目有60条,如下图: ?...只要商品信息显示在页面上,那么通过DOM就一定能获取,因此如果我们有办法获取浏览器内部的DOM模型那么就可以读取到动态加载的数据,由于多余的数据是页面下拉后触发给定js代码才通过ajax动态获取,因此如果我们能通过代码的方式控制浏览器加载网页...,然后让浏览器对页面进行下拉,然后读取浏览器页面对应的DOM那么就可以获得动态加载的数据。...经过一番调查,我们发现一个叫selenium的控件能通过代码动态控制浏览器,例如让浏览器加载特定页面,让浏览器下拉页面,然后获取浏览器中加载页面的html代码,于是我们可以使用它来方便的抓取动态页面数据...由于浏览器与我们代码运行不再同一个进程,因此我们要调用WebDriverWait等待一段时间让浏览器完全加载页面,接下来为了触发特定Js代码获取到动态加载的数据,我们要模拟人把页面下拉的动作: SCROLL_PAUSE_TIME

    2.1K10

    GPT自动投简历,一周斩获三offer,开源分享!

    一、前言 最近在 GitHub 上发现了一个非常有意思的项目:GitHub链接1。 该作者巧妙地结合 GPT 和 RPA 技术,打造了一个自动投简历助手。...二、整体思路 首先,我们会使用 selenium-webdriver5 来模拟用户行为,该库是一个强大的自动化测试工具。...用 selenium-webdriver5 模拟用户打开浏览器窗口,并导航至直聘网的主页。 等待页面加载完成,找到登录按钮的 DOM 节点,模拟用户点击触发登录,等待用户扫码操作。...遍历招聘信息列表,对每一项进行以下操作: 点击招聘信息,找到该项招聘信息的职位描述信息 结合上传的简历信息与招聘信息传递给 GPT,等待 GPT 的响应 在 GPT 响应后,点击“立即沟通”按钮,进入沟通聊天界面...这一步中我们需要找到 登录按钮 的 DOM 节点,然后模拟点击登录。

    12510

    开源分享!GPT自动投简历,一周斩获三offer

    一、前言 最近在 GitHub 上发现了一个非常有意思的项目:GitHub链接1。 该作者巧妙地结合 GPT 和 RPA 技术,打造了一个自动投简历助手。...二、整体思路 首先,我们会使用 selenium-webdriver5 来模拟用户行为,该库是一个强大的自动化测试工具。...用 selenium-webdriver5 模拟用户打开浏览器窗口,并导航至直聘网的主页。 等待页面加载完成,找到登录按钮的 DOM 节点,模拟用户点击触发登录,等待用户扫码操作。...遍历招聘信息列表,对每一项进行以下操作: 点击招聘信息,找到该项招聘信息的职位描述信息 结合上传的简历信息与招聘信息传递给 GPT,等待 GPT 的响应 在 GPT 响应后,点击“立即沟通”按钮,进入沟通聊天界面...这一步中我们需要找到 登录按钮 的 DOM 节点,然后模拟点击登录。

    27610

    用Selenium来爬取数据?真挺简单的!

    于是Selenium就应运而生了,它可以算的上是自动化测试框架中的佼佼者,因为它解决了大多数用来爬取页面的模块的一个永远的痛,那就是Ajax异步加载 。...chromedriver是一个驱动Chrome浏览器的驱动程序,使用他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。...因为点击后还需要选中元素。这时候selenium就专门为select标签提供了一个类selenium.webdriver.support.ui.Select。...presence_of_all_elements_located:网页中所有满足条件的元素都加载完毕了。 element_to_be_clickable:某个元素是可以点击了。...selenium提供了一个叫做switch_to_window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到 # 打开一个新的页面 driver.execute_script

    4.7K20

    selenium 的显示等待与隐式等待

    现在很多的网页都采用了 Ajax 技术,那么采用一般的静态爬虫技术会出现抓取不到页面的元素。比如歌曲的主页会有评论数量,一般评论数量是动态加载的。...所以这就涉及到selenium,支持各种浏览器,包括Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试...element.click()点击这个网页组件 切换窗口,一个是切换到windows下,一个是切换到frame下 driver.switch_to_window(“windowName...selenium的页面等待问题 ,动态加载的页面需要时间等待页面上的所有元素都渲染完成,如果在没有渲染完成之前我们就switch_to_或者是find_elements_by_,那么就可能出现元素定位困难而且会提高产生...Selenium Python binding provides some convienence 提供了很多实用的方法。

    3.6K40

    UIlicious - 自动化端到端测试

    在任何前端上工作:你的UI代码看起来像是隐藏在引擎盖下,并不重要。 Shadow DOM: UIlicious自动扫描Shadow DOM中的元素,并且能够在不需要复杂解决方案的情况下定位它们。...自动等待:UIlicious会自动等待目标元素出现在屏幕上,然后再尝试交互或验证它。 动态和受保护的测试数据:数据集允许你使用不同的测试数据运行测试,并存储将在报告中隐藏。...登录后,点击+ Project 按钮创建新项目。 输入项目名称,点击Create 按钮。 项目创建完成。 3、创建与编写测试脚本。 点击左侧窗格上工具栏中的+ 按钮以添加新的测试文件。...运行时可以选择不同的浏览器运行。 也可以选择不同的分辨率来运行。 测试脚本准备好后,点击Run按钮,测试开始执行,可以看到测试的结果,以及为每个步骤拍摄的屏幕截图。...设置何时多久来运行测试脚本,再设置运行结果的通知,比如邮件通知方式,配置完成后,点击Schedule 按钮。 Job添加完成。 6、查看测试运行记录。

    12110

    快速进行UI自动化

    配置测试重试策略,捕获执行跟踪、视频、屏幕截图。 运行机制 浏览器在不同进程中运行属于不同来源的 Web 内容。Playwright 与现代浏览器架构保持一致,并在进程外运行测试。...完全隔离-快速执行 浏览器上下文。Playwright 为每个测试创建一个浏览器上下文。浏览器上下文相当于一个全新的浏览器配置文件。这提供了零开销的完全测试隔离。...创建一个新的浏览器上下文只需要几毫秒。 登录一次。保存上下文的身份验证状态并在所有测试中重用它。这绕过了每个测试中的重复登录操作,但提供了独立测试的完全隔离。 强大的工具 代码生成器。...text 文本选择器 文本选择器是一个非常实用的定位方式,根据页面上看到的text文本就可以定位了,比如我们经常在selenium中使用xpath 的文本选择器定位 完全匹配文本 //*[text()=...截图 截取当前屏幕 如果仅仅截取当前屏幕(浏览器)上能看到的部分,那么可以使用如下语法: page.screenshot(path="截图保存路径") 截取整个页面 有时候,页面可能会比较长,一个屏幕无法全部展示出来

    28710

    就是这么简单,Selenium StaleElementReferenceException 异常分析与解决

    简介Selenium 是一个流行的自动化测试工具,用于模拟用户与网页交互。...StaleElementReferenceException 是 Selenium 中的一个异常类,用于表示当尝试与一个元素交互时,该元素已经不再附加到 DOM(文档对象模型)中的情况。...这通常发生在以下情况下:当页面上的元素在我们访问它之前已经被修改或重新加载。当你尝试在页面导航后(例如点击链接或按钮后)使用之前找到的元素。当页面的 JavaScript 代码异步更新了页面内容。...,然后使用新的变量进行操作,而不是使用陈旧的元素。...更新的操作(例如点击按钮触发的异步加载)之前,等待相关操作完成,然后再尝试访问元素。

    1.1K10

    Appium+python自动化(二十四)- 白素贞千年等一回许仙 - 元素等待(超详解)

    简介   许仙小时候最喜欢吃又甜又软的汤圆了,一次一颗汤圆落入西湖,被一条小白蛇衔走了。十几年后,一位身着白衣、有青衣丫鬟相伴的美丽女子与许仙相识了,她叫白娘子。...因此元素加载的时间可能不一致,从而会导致元素无法定位超时报错,但是实际上元素是正常加载了的,只是出现时间晚一点而已。那么如何解决这个问题呢?...实际测试过程中,比如点击一个控件需要启动一个新activiy界面,或需要加载弹框,或请求网络加载数据成功后刷新界面,此时需要等待一段时间,新界面出现了才能继续执行UI操作,否则还在加载中,程序已开始执行新界面操作的代码...,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0 5 #一旦设置了隐式等待,则它存在整个 WebDriver 对象实例的声明周期中,隐式的等到会让一个正常响应的应用的测试变慢...(2)上一步已经获取当主页面的activity了,那就可以用wait_activity等它出现了,再做下一步的点击操作 ?

    1.3K30
    领券