无头模式请求web-sdk

什么是「无头浏览器」 (Headless browser),它有什么应用场景? - 知乎

 Chrome Headless模式(一)https://www.cnblogs.com/yimiaoyikan/p/10225849.html

背景:

有个任务的扩展测试点是想确认“无头模式下”请求我们的web-sdk对浏览器是否在线状态的字段上报有无影响,测试结果发现无影响。但使用无头模式请求,发现我们的设备指纹对应的浏览器属性字段会上报Headless字样,如下截图所示

 如果在无头浏览器配置了对应浏览器的user-agent,对应字段就不会携带Headles字样,只显示对应浏览器名称,如下图配置为火狐浏览器的user-agent,就会上报Firefox,实际是用的Google浏览器请求。属性都是可以造假的:

 备注:无头模式测试前需关闭已打开的google浏览器窗口

测试代码:

from selenium.webdriver.common.by import By

from selenium import webdriver

from selenium.webdriver.chrome.options import Options # => 引入Chrome的配置

import webbrowser

import time

url = '{上报设备指纹协议地址}'

ch_options = Options()

ch_options.add_argument("--headless")  # => 为Chrome配置无头模式

print("开始为Chrome配置无头模式,请关闭所有已打开的Google浏览器")

# ch_options.add_argument("user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'")  # => 配置为Google浏览器的user-agent

# ch_options.add_argument("user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0'") => 配置为火狐浏览器的user-agent

# 在启动浏览器时加入配置

driver = webdriver.Chrome(options=ch_options) # => 注意这里的参数

driver.get('{web-sdk地址}')

print("打开了sdk,开始配置")

driver.implicitly_wait(30) # 隐式等待30s

driver.find_element(By.XPATH,"{定位上报数据path的元素}").send_keys("")

print("已配置上报数据path")

time.sleep(2)

driver.find_element(By.XPATH,"{定位初始化的元素}").click()

print("点击初始化")

time.sleep(2)

driver.find_element(By.XPATH,"{定位点击上报数据的元素}").click()

print("点击上报数据")

time.sleep(2)

#只有截图才能看到效果咯

driver.save_screenshot('./web_sdk.png')

webbrowser.open_new(url)

print("结束上报,请检查对应字段是否携带Headles字样")

driver.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值