首页
学习
活动
专区
工具
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.4K20

    Selenium异常集锦

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

    5.3K20

    用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抓爬网页动态加载数据

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

    2.1K10

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

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

    95723

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

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

    17.2K112

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

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

    22010

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

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

    12110

    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.6K20

    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

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

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

    86510

    快速进行UI自动化

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

    26410

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

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

    1.2K30

    Web 自动化:一种基于 Page Object 实现及常见异常处理

    同一控件不同实例DOM结构类似,用户在页面上操作可以看作是对各类控件动作组合。...1、查找元素时遇到NoSuchElementException 出现此问题一般是因为Selenium查找操作在元素加载之前就已经结束。...许多测试脚本在这里会选择用Thread.sleep()来等待元素加载,但是等待时间如果选大浪费,选小了元素可能还没来加载。...这样能实现一个查找方法查找多种控件。 2、StaleElementReference 这是Selenium测试脚本常见异常,出现此问题原因一般是所操作DOM元素被刷新。...为了提高这里稳定性,在点击之前应该利用SeleniumAction移动到待点击元素。 综上,一个安全点击事件应该长这样: 获取更多测试干货,请搜索微信公众号:腾讯移动品质中心TMQ!

    2.5K00

    selenium-携程酒店评论

    刚开始就直接driver.get()看了下,唉发现有数据啊,没啥难度啊,一想感觉不对劲,就对比了下数据, 观察下发现,我用webdriver启动浏览器没有评论,并且酒店价格也不一样。...(方法下面讲) 再次请求,对比数据发现是一致。 这个完成之后,感觉可以直接拿数据了吧,在采集时我发现,他所有页面都是异步加载。 也就是说,我在点击下一页时候,url是不会改变。...在这直接获取 xpath 来进行点击是不行,因为有的标题他对应xpath 并不是完全规范。...所以我就观察页面,他这个data-id是每个都有的,所以可以通过获取他ID来进行访问, 但是又有新问题了,在通过获取id,来get新页面。...在selenium中会覆盖当前窗口,一开始我用是 driver.back(),在采集完返回之前列表页,但是因为上面说他是异步加载,每次back都只会返回到第一页。

    73510
    领券