浏览器禁用java,如何使用Selenium(Java)在浏览器中禁用JavaScript?

In my feature automation, I need to disable JavaScript in browser and run the flow. How to disable JavaScript?

Tried DesiredCapabilities for firefox and Chrome.

DesiredCapabilities dc = new DesiredCapabilities();

dc.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, false)

And

DesiredCapabilities dc = new DesiredCapabilities();

dc.setJavascriptEnabled(false);

For firefox, tried

1) Setting up profile for firefox

2) Adding add-on - noScript.xpi

3) profile.setPreference("javascript.enabled", false);

4) Through UI, tried changing the flag - "javascript.enabled" in "about:config" to false. Here, opened firefox and gave "about:config" getting a warning - "This might void your warranty!". There is a button - "I'll be careful, I promise!" with id - warningButton. This button should be clicked to proceed further. To click this button, used driver.findElement(By.id("warningButton")).click(); but it not work.

All the above options are not working. Any advice will be helpful.

解决方案

You change the preference value using profile with lots of options:

DesiredCapabilities capabilities = new DesiredCapabilities();

// setCapability(SUPPORTS_JAVASCRIPT, javascriptEnabled);

capabilities.setJavascriptEnabled(false);

FirefoxBinary binary = new FirefoxBinary( new File( binaryPath ) );

FirefoxProfile profile = new FirefoxProfile();

//profile.setPreference("preferenceName", "Value");

profile.setPreference("javascript.enabled", false);

RemoteWebDriver driver = new FirefoxDriver(binary, profile, capabilities);

To view the preferences, you can visit the URL about:config

7IwZT.png

@See

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Selenium是一个用于自动化测试的工具,在运行自动化测试脚本时,网站可能会检测到Selenium的存在。 有几种方法可以帮助你规避Selenium检测: 1. 使用未被检测出的浏览器,比如Firefox或Safari。 2. 使用浏览器的隐身模式。 3. 使用浏览器插件,如User-Agent Switcher,模拟不同的浏览器和设备。 4. 使用浏览器虚拟机,如BrowserStack或Sauce Labs,在远程服务器上运行自动化测试脚本。 5. 使用降级的Selenium API,如Selenium RC,模拟真实用户的行为。 6. 使用不同的浏览器驱动程序,比如ChromeDriver、GeckoDriver或EdgeDriver,以获得更多的浏览器兼容性。 7. 使用代理服务器,比如Tor,将流量转发到不同的IP地址。 希望这些建议能帮助你规避Selenium检测。 ### 回答2: 要想规避Selenium检测,Edge浏览器可以使用以下几种方法: 1. 更改User-Agent标头:Selenium检测常通过User-Agent标头来识别自动化工具。Edge浏览器可以使用不同的User-Agent标头来模拟普通用户的浏览器。可以使用Edge浏览器提供的开发者工具修改User-Agent标头,以避免Selenium检测。 2. 使用代理服务器:使用代理服务器可以隐藏真实的IP地址和浏览器指纹,使Selenium检测难以识别。可以配置Edge浏览器使用代理服务器,通过代理服务器访问页面,以规避Selenium检测。 3. 调整浏览器行为:Edge浏览器提供了很多高级设置和参数,可以通过更改这些设置来模拟真实用户的行为。比如,禁用JavaScript、启用Flash、调整窗口大小等,这样可以使Selenium检测更困难。 4. 使用WebDriver W3C规范:目前有较多的浏览器支持WebDriver W3C规范,包括Edge浏览器。这个规范定义了浏览器和自动化测试工具之间的通信协议,可以更好地集成浏览器Selenium。通过使用W3C规范,可以避免一些常见的检测手段,提高Selenium的兼容性。 需要注意的是,尽管可以尝试这些方法规避Selenium检测,但并不能保证永久有效,因为Selenium的开发者可能会针对新的规避手段进行更新和优化。在实际应用,最好遵守网站的使用规则,避免逆向工程和滥用自动化工具。 ### 回答3: Edge浏览器是一种业界领先的Web浏览器,为了规避Selenium检测,可以采取以下方法: 1. 更改User Agent:Selenium检测通常是通过检查浏览器的User Agent(用户代理)来实现的。可以使用Selenium的`add_argument()`方法,将Edge浏览器的User Agent设置为常见的浏览器,比如Chrome或Firefox,从而欺骗Selenium检测。 2. 禁用JavascriptSelenium检测也可能会通过检查浏览器Javascript执行功能来实现。可以在Edge浏览器的启动选项禁用Javascript功能,从而规避Selenium的检测。 3. 修改浏览器指纹:浏览器指纹是一个包含多个属性的唯一标识符,可以通过特定的属性组合来识别浏览器。通过修改Edge浏览器的指纹属性,比如修改浏览器的窗口大小、操作系统版本等,可以增加Selenium检测的难度。 4. 使用WebDriver的非标准功能:Selenium通常使用标准的WebDriver接口来控制浏览器,但不同浏览器对WebDriver接口的实现可能不同。在Edge浏览器,可以使用一些非标准的功能或方法,并将其与一些随机延迟等技术结合使用,来规避Selenium的检测。 需要注意的是,Selenium检测是为了防止自动化爬取和滥用网站资源,尽管有时可能带来一些困扰,但我们应该遵守相关规定和合法使用浏览器工具,以确保网络安全和公平竞争。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值