在以下网址:https://www.sky.com/new-search/chernobyl?q=chernobyl
是一个名为的按钮Episodes
。我已经从Google Chrome开发者工具确定,其表示为:
<button role="tab" type="button" id="tabs-id_2474-link-1" class="c-tabs__link" aria-selected="false" aria-controls="tabs-id_2474-article-1" data-test-id="episodes-tab-button">Episodes</button>
...我还设法从开发工具的“来源”标签中找到了用于鼠标单击的Javascript webpack:///./src/builders/click.js?388e
。
按下Episodes
按钮的效果是,页面的URL从更改https://www.sky.com/new-search/chernobyl?q=chernobyl
为https://www.sky.com/new-search/chernobyl/episodes/season-1/episode-0?q=chernobyl
,页面更改为显示系列的剧集和该剧集的摘要。
我缺少的是,现在单击鼠标Javascript是否会触发第二个URL的加载?我需要能够以某种方式捕获新的URL,或者甚至更好地捕获第二个URL的完整源代码...
有任何想法吗?
客户端应用程序基本上可以在导航方面做任何想要的事情。在正常链接之外,没有标准机制<a>
。
他们可能正在做的是更新现有页面,并更新URL以保留状态。也就是说,当您单击按钮时,它们的代码将关闭并从服务器中获取一些数据,然后根据该数据在页面上创建元素。实际的原始HTML页面(和上下文)保持不变,但是可以使用新数据进行修改。可以使用History API更新URL 。
如果您对要检查的Web应用程序有所了解,则可以专门为其编写代码。例如,如果您知道应用程序总是从中获取数据https://api.example.com/some-data
,那么您可以跳过整个网页的测试并直接访问API。
如果您需要更通用的解决方案,那么您唯一能做的就是通过Chromium Embedded Framework或类似工具运行整个浏览器引擎。这使Web应用程序可以正常运行。然后,在更改URL时,您可以使用自己的代码检查DOM。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句