JavaScript Window Navigator


JavaScript Window Navigator

在这里插入图片描述
window.navigator 对象包含有关访问者浏览器的信息。

Window Navigator

window.navigator 对象在编写时可不使用 window 这个前缀。
实例

<div id="example"></div>
<script>
txt = "<p>浏览器代号: " + navigator.appCodeName + "</p>";
txt+= "<p>浏览器名称: " + navigator.appName + "</p>";
txt+= "<p>浏览器版本: " + navigator.appVersion + "</p>";
txt+= "<p>启用Cookies: " + navigator.cookieEnabled + "</p>";
txt+= "<p>硬件平台: " + navigator.platform + "</p>";
txt+= "<p>用户代理: " + navigator.userAgent + "</p>";
txt+= "<p>用户代理语言: " + navigator.systemLanguage + "</p>";
document.getElementById("example").innerHTML=txt;
</script> 

警告!!!

来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:

  • navigator 数据可被浏览器使用者更改
  • 一些浏览器对测试站点会识别错误
  • 浏览器无法报告晚于浏览器发布的新操作系统

浏览器检测

由于 navigator 可误导浏览器检测,使用对象检测可用来嗅探不同的浏览器。

由于不同的浏览器支持不同的对象,您可以使用对象来检测浏览器。例如,由于只有 Opera 支持属性 “window.opera”,您可以据此识别出 Opera。

例子:if (window.opera) {…some action…}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
window.navigator.webdriver属性是一个布尔值,用于指示当前浏览器是否正在由自动化测试工具控制。该属性在JavaScript中是只读的,它的默认值为false。然而,为了防止被自动化测试工具检测到,有时候需要将其置为空,以隐藏测试工具的存在。在Selenium中,有几种方法可以将window.navigator.webdriver属性置空。 方法1:在每次打开新页面时将window.navigator.webdriver属性置为undefined。 ```python from selenium import webdriver from selenium.webdriver import ChromeOptions option = ChromeOptions() option.add_argument('--disable-blink-features=AutomationControlled') option.add_experimental_option('excludeSwitches', ['enable-automation']) option.add_experimental_option('useAutomationExtension', False) driver = webdriver.Chrome(options=option, executable_path="chromedriver.exe") driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', { "source": 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})' }) ``` 方法2:在请求时添加参数设置,将window.navigator.webdriver属性置为空。 ```python from selenium import webdriver option = ChromeOptions() option.add_argument('--disable-blink-features=AutomationControlled') driver = webdriver.Chrome(options=option, executable_path="chromedriver.exe") driver.get("xxxxxx") ``` 请注意,以上方法只是在使用Selenium进行自动化测试时隐藏webdriver属性的一种方式,并不能完全防止被检测到。在一些特定的场景下,网站可能会使用其他方式来检测自动化测试工具的存在。因此,如果需要更好地规避检测,请参考其他相关技术和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁辰兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值