tam*_*use 48 webdriver capybara selenium-webdriver
我正在尝试将请求标头"Referer"设置为欺骗来自其他网站的请求.我们需要使用特定引用者的能力测试,它将特定的表单返回给用户,否则给出另一种形式.
我可以通过以下方式在恶作剧中做到这一点:
page.driver.headers = {"Referer" => referer_string}
Run Code Online (Sandbox Code Playgroud)
但我找不到selemium驱动程序的等效功能.
如何在capybara selenium驱动程序中设置请求标头?
And*_*lov 37
Webdriver不包含用于执行此操作的API.有关详细信息,请参阅Selenium跟踪器的问题141.该问题的标题说它是关于响应标头但是决定Selenium在此问题的范围内不包含请求标头的API.有关添加API以设置请求标头的几个问题已标记为重复:第一,第二,第三.
以下是我可以提出的几种可能性:
在大多数情况下,我会选择3.这并不难.
请注意,Ghostdriver有一个API,但其他驱动程序不支持它.
Wil*_*ing 10
对于那些使用Python的人,您可以考虑使用Selenium Wire,它可以设置请求标头,并为您提供检查请求和响应的能力.
from seleniumwire import webdriver # Import from seleniumwire
# Create a new instance of the Firefox driver
driver = webdriver.Firefox()
driver.header_overrides = {
'Referer': 'referer_string',
}
# All subsequent requests will now contain the Referer
Run Code Online (Sandbox Code Playgroud)
我遇到过同样的问题.我解决了它下载modify-headers firefox附加组件并用selenium激活它.
python中的代码如下
fp = webdriver.FirefoxProfile()
path_modify_header = 'C:/xxxxxxx/modify_headers-0.7.1.1-fx.xpi'
fp.add_extension(path_modify_header)
fp.set_preference("modifyheaders.headers.count", 1)
fp.set_preference("modifyheaders.headers.action0", "Add")
fp.set_preference("modifyheaders.headers.name0", "Name_of_header") # Set here the name of the header
fp.set_preference("modifyheaders.headers.value0", "value_of_header") # Set here the value of the header
fp.set_preference("modifyheaders.headers.enabled0", True)
fp.set_preference("modifyheaders.config.active", True)
fp.set_preference("modifyheaders.config.alwaysOn", True)
driver = webdriver.Firefox(firefox_profile=fp)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
74611 次 |
最近记录: |