python-3.x - 如何使用python和selenium动态获取网页中触发的标签
问题描述
我有一个谷歌分析代码触发的网站(通过谷歌标签管理器)。该网站有很多页面,我想检查 Google Analytics 代码是否在所有页面上触发。一种方法是打开 URL,打开 GA 调试器并检查控制台中的综合浏览量。由于有很多 URL 需要检查,有没有办法自动化这个过程(最好通过 Python)
到目前为止我已经尝试过:我已经设法获取页面的源代码,然后通过正则表达式查找特定代码片段(GA 和 GTM)您可以在下面找到代码。但问题是这只会获取静态代码。在页面实际加载后触发的任何像素/代码都不会被捕获。
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r"C:\chromedriver.exe")
driver.get("url")
html1 = driver.page_source
html2 = print(driver.execute_script("return
document.documentElement.innerHTML;"))
我也尝试使用 BS4 和请求,但没有任何用处。
解决方案
我正在使用带有 selenium 驱动程序的BrowserMob 代理来捕获在测试运行时发送的所有 HTTP 请求和响应,然后循环检查每个包含“google-analytics”的请求 url。然后我解析该请求以检查事件值是否符合我的预期。
推荐阅读
- c++ - 当B类有A类的对象时,在A类中使用B类的成员变量
- sas - 根据用户分配路径变量
- ms-access-2007 - 在 Access 2013 中创建的数据库未在 Access 2007 中打开
- laravel - 在我点击第 5 页并更新其中一项内容后,Vuetable 返回第 1 页,然后单击返回
- php - 在 cPanel 上上传预制的 laravel 网站
- python - Django mysqlclient backend produces django.db.utils.OperationalError: (2059,
) in Windows - python - Rally host is non-existent or unreachable via pyral
- sql - sql server returns duplicates
- db2 - Db2 中身份列的奇怪行为?
- amazon-web-services - 向特定 lambda 别名或版本发送 s3 事件通知的方式