mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2025-12-13 19:45:56 +00:00
Playwright - Use HTTP Request Headers override (Cookie, etc)
This commit is contained in:
@@ -655,7 +655,8 @@ def changedetection_app(config=None, datastore_o=None):
|
|||||||
current_base_url=datastore.data['settings']['application']['base_url'],
|
current_base_url=datastore.data['settings']['application']['base_url'],
|
||||||
emailprefix=os.getenv('NOTIFICATION_MAIL_BUTTON_PREFIX', False),
|
emailprefix=os.getenv('NOTIFICATION_MAIL_BUTTON_PREFIX', False),
|
||||||
visualselector_data_is_ready=visualselector_data_is_ready,
|
visualselector_data_is_ready=visualselector_data_is_ready,
|
||||||
visualselector_enabled=visualselector_enabled
|
visualselector_enabled=visualselector_enabled,
|
||||||
|
playwright_enabled=os.getenv('PLAYWRIGHT_DRIVER_URL', False)
|
||||||
)
|
)
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
|||||||
@@ -301,6 +301,9 @@ class base_html_playwright(Fetcher):
|
|||||||
accept_downloads=False
|
accept_downloads=False
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if len(request_headers):
|
||||||
|
context.set_extra_http_headers(request_headers)
|
||||||
|
|
||||||
page = context.new_page()
|
page = context.new_page()
|
||||||
try:
|
try:
|
||||||
page.set_default_navigation_timeout(90000)
|
page.set_default_navigation_timeout(90000)
|
||||||
|
|||||||
@@ -1,13 +1,30 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
function toggle() {
|
function toggle() {
|
||||||
if ($('input[name="fetch_backend"]:checked').val() != 'html_requests') {
|
if ($('input[name="fetch_backend"]:checked').val() == 'html_webdriver') {
|
||||||
$('#requests-override-options').hide();
|
if(playwright_enabled) {
|
||||||
$('#webdriver-override-options').show();
|
// playwright supports headers, so hide everything else
|
||||||
|
// See #664
|
||||||
|
$('#requests-override-options #request-method').hide();
|
||||||
|
$('#requests-override-options #request-body').hide();
|
||||||
|
|
||||||
|
// @todo connect this one up
|
||||||
|
$('#ignore-status-codes-option').hide();
|
||||||
} else {
|
} else {
|
||||||
|
// selenium/webdriver doesnt support anything afaik, hide it all
|
||||||
|
$('#requests-override-options').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$('#webdriver-override-options').show();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
$('#requests-override-options').show();
|
$('#requests-override-options').show();
|
||||||
|
$('#requests-override-options *:hidden').show();
|
||||||
$('#webdriver-override-options').hide();
|
$('#webdriver-override-options').hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$('input[name="fetch_backend"]').click(function (e) {
|
$('input[name="fetch_backend"]').click(function (e) {
|
||||||
toggle();
|
toggle();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
const notification_base_url="{{url_for('ajax_callback_send_notification_test')}}";
|
const notification_base_url="{{url_for('ajax_callback_send_notification_test')}}";
|
||||||
const watch_visual_selector_data_url="{{url_for('static_content', group='visual_selector_data', filename=uuid)}}";
|
const watch_visual_selector_data_url="{{url_for('static_content', group='visual_selector_data', filename=uuid)}}";
|
||||||
const screenshot_url="{{url_for('static_content', group='screenshot', filename=uuid)}}";
|
const screenshot_url="{{url_for('static_content', group='screenshot', filename=uuid)}}";
|
||||||
|
const playwright_enabled={% if playwright_enabled %} true {% else %} false {% endif %};
|
||||||
|
|
||||||
{% if emailprefix %}
|
{% if emailprefix %}
|
||||||
const email_notification_prefix=JSON.parse('{{ emailprefix|tojson }}');
|
const email_notification_prefix=JSON.parse('{{ emailprefix|tojson }}');
|
||||||
@@ -81,13 +82,14 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<fieldset id="webdriver-override-options">
|
<fieldset id="webdriver-override-options">
|
||||||
|
<div class="pure-control-group">
|
||||||
|
{{ render_field(form.webdriver_delay) }}
|
||||||
<div class="pure-form-message-inline">
|
<div class="pure-form-message-inline">
|
||||||
<strong>If you're having trouble waiting for the page to be fully rendered (text missing etc), try increasing the 'wait' time here.</strong>
|
<strong>If you're having trouble waiting for the page to be fully rendered (text missing etc), try increasing the 'wait' time here.</strong>
|
||||||
<br/>
|
<br/>
|
||||||
This will wait <i>n</i> seconds before extracting the text.
|
This will wait <i>n</i> seconds before extracting the text.
|
||||||
</div>
|
</div>
|
||||||
<div class="pure-control-group">
|
|
||||||
{{ render_field(form.webdriver_delay) }}
|
|
||||||
</div>
|
</div>
|
||||||
{% if using_global_webdriver_wait %}
|
{% if using_global_webdriver_wait %}
|
||||||
<div class="pure-form-message-inline">
|
<div class="pure-form-message-inline">
|
||||||
@@ -96,18 +98,20 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset class="pure-group" id="requests-override-options">
|
<fieldset class="pure-group" id="requests-override-options">
|
||||||
|
{% if not playwright_enabled %}
|
||||||
<div class="pure-form-message-inline">
|
<div class="pure-form-message-inline">
|
||||||
<strong>Request override is currently only used by the <i>Basic fast Plaintext/HTTP Client</i> method.</strong>
|
<strong>Request override is currently only used by the <i>Basic fast Plaintext/HTTP Client</i> method.</strong>
|
||||||
</div>
|
</div>
|
||||||
<div class="pure-control-group">
|
{% endif %}
|
||||||
|
<div class="pure-control-group" id="request-method">
|
||||||
{{ render_field(form.method) }}
|
{{ render_field(form.method) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="pure-control-group">
|
<div class="pure-control-group" id="request-headers">
|
||||||
{{ render_field(form.headers, rows=5, placeholder="Example
|
{{ render_field(form.headers, rows=5, placeholder="Example
|
||||||
Cookie: foobar
|
Cookie: foobar
|
||||||
User-Agent: wonderbra 1.0") }}
|
User-Agent: wonderbra 1.0") }}
|
||||||
</div>
|
</div>
|
||||||
<div class="pure-control-group">
|
<div class="pure-control-group" id="request-body">
|
||||||
{{ render_field(form.body, rows=5, placeholder="Example
|
{{ render_field(form.body, rows=5, placeholder="Example
|
||||||
{
|
{
|
||||||
\"name\":\"John\",
|
\"name\":\"John\",
|
||||||
@@ -115,7 +119,7 @@ User-Agent: wonderbra 1.0") }}
|
|||||||
\"car\":null
|
\"car\":null
|
||||||
}") }}
|
}") }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div id="ignore-status-codes-option">
|
||||||
{{ render_checkbox_field(form.ignore_status_codes) }}
|
{{ render_checkbox_field(form.ignore_status_codes) }}
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
Reference in New Issue
Block a user