使用watir chromedriver进行的测试因请求标头中的Sec-Fetch-User而失败

时间:2019-10-21 19:40:50

标签: selenium-chromedriver watir

我正在使用watir来测试内部应用程序。该测试最近停止工作。

这些是测试的简化步骤:

require 'watir'
Selenium::WebDriver::Chrome.path = 'PATH_TO_CHROME_EXE'
browser = Watir::Browser.new :chrome, :options => {:options => {'useAutomationExtension' => false}}
URL = "TEST_URL"
browser.goto URL

执行goto行后,浏览器无法导航到该页面。检查网络活动时,请求状态显示为已取消。我还注意到标题中填充了“ Sec-Fetch-User”字段:

Sec-Fetch-Mode: navigate
**Sec-Fetch-User: ?1**
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)         Chrome/77.0.3865.90 Safari/537.36

如果我直接在浏览器中输入测试URL,则不会填充该字段,并且会弹出登录窗口。

这是我的设置:

jruby 9.2.5.0 (2.5.0) 2018-12-06 6d5a228 Java HotSpot(TM) 64-Bit Server VM 25.102-b14 on 1.8.0_102-b14 +jit [mswin32-x86_64]
Version 77.0.3865.90 (Official Build) (64-bit)
Watir 6.16.5
ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442})

有人遇到类似问题吗?可以抑制标题吗?

史蒂夫

1 个答案:

答案 0 :(得分:0)

我遇到了与 Sec-Fetch-User用户完全相同的问题:?1

加载网页的唯一方法是抛弃chromedriver,改用firefox驱动程序。 Firefox没有发送这些标头。

我认为,如果您确实需要使用chromedriver,并且需要更改标头,则可以使用https://github.com/lightbody/browsermob-proxy之类的代理