Automatyczne plamienie firefoxa #5

Closed
opened 2022-04-13 11:46:45 +02:00 by kuba · 3 comments
Owner

Napisać skrypty, które będą automatycznie plamić stan firefoxa. Najlepiej będzie chyba przy plamieniu tworzyć nowy obraz dockera, aby potem można było odpalać wiele niezależnych kontenerów tak samo splamionych

Napisać skrypty, które będą automatycznie plamić stan firefoxa. Najlepiej będzie chyba przy plamieniu tworzyć nowy obraz dockera, aby potem można było odpalać wiele niezależnych kontenerów tak samo splamionych
kuba added this to the Kanban project 2022-04-13 11:52:37 +02:00
Author
Owner

Tak jak zasugerował Arek na callu, można po prostu kierować się treścią buttonów:

Array.from(document.querySelectorAll("*")).filter(e=>e.textContent.toLowerCase().includes("accept") && e.textContent.length < 30)
Tak jak zasugerował Arek na callu, można po prostu kierować się treścią buttonów: ```js Array.from(document.querySelectorAll("*")).filter(e=>e.textContent.toLowerCase().includes("accept") && e.textContent.length < 30) ```
Author
Owner

Domeny, którymi warto plamić cookiesy:

  • facebook.com
  • google.com
  • hotjar.com
  • maps.google.com
  • linkedin.com

...i potencjalnie próbować wszystkie, które zostały zgłoszone przez wtyczkę w żądaniu?

Domeny, którymi warto plamić cookiesy: * facebook.com * google.com * hotjar.com * maps.google.com * linkedin.com ...i potencjalnie próbować wszystkie, które zostały zgłoszone przez wtyczkę w żądaniu?
kuba added this to the Premiera milestone 2022-06-23 09:55:59 +02:00
kuba started working 2022-07-09 17:04:22 +02:00
Author
Owner

Tym snippetem można duuużą ilośc okienek zaakceptować:

regexes = ['allow', 'accept', 'akceptuj', /przejdź(?! do główn).*/];
avoid = ['dostosuj'];

buttons = Array.from(document.querySelectorAll('*')).filter(
    (e) =>
        e.textContent.length < 50 &&
        regexes.some((regex) => e.textContent.toLowerCase().match(regex) !== null)
);

operations = [
    (buttons) =>
        buttons.filter((button) => {
            const rect = button.getBoundingClientRect();
            return (
                rect.top < window.innerHeight &&
                rect.left < window.innerWidth &&
                !(rect.width == 0 && rect.height == 0)
            );
        }),
    (buttons) => buttons.filter((e) => !e.textContent.toLowerCase().includes('only')),
    (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === 'button'),
    (buttons) => buttons.filter((e) => !e.textContent.toLowerCase().includes('do not')),
    (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === 'a'),
    (buttons) =>
        buttons.filter((e) => avoid.every((word) => !e.textContent.toLowerCase().includes(word))),
    (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === 'input' && e.type === 'submit'),
];

for (const operation of operations) {
    if (buttons.length === 1) {
        break;
    }
    const result = operation(buttons);
    if (result.length) {
        buttons = result;
    }
}

buttons.forEach((button) => button.click());
buttons.forEach((button) => {
    button.querySelectorAll('input').forEach((child) => child.click());
});

buttons;

Tym snippetem można duuużą ilośc okienek zaakceptować: ```js regexes = ['allow', 'accept', 'akceptuj', /przejdź(?! do główn).*/]; avoid = ['dostosuj']; buttons = Array.from(document.querySelectorAll('*')).filter( (e) => e.textContent.length < 50 && regexes.some((regex) => e.textContent.toLowerCase().match(regex) !== null) ); operations = [ (buttons) => buttons.filter((button) => { const rect = button.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.left < window.innerWidth && !(rect.width == 0 && rect.height == 0) ); }), (buttons) => buttons.filter((e) => !e.textContent.toLowerCase().includes('only')), (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === 'button'), (buttons) => buttons.filter((e) => !e.textContent.toLowerCase().includes('do not')), (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === 'a'), (buttons) => buttons.filter((e) => avoid.every((word) => !e.textContent.toLowerCase().includes(word))), (buttons) => buttons.filter((e) => e.tagName.toLowerCase() === 'input' && e.type === 'submit'), ]; for (const operation of operations) { if (buttons.length === 1) { break; } const result = operation(buttons); if (result.length) { buttons = result; } } buttons.forEach((button) => button.click()); buttons.forEach((button) => { button.querySelectorAll('input').forEach((child) => child.click()); }); buttons; ```
kuba closed this issue 2022-07-09 20:04:45 +02:00
kuba stopped working 2022-07-09 20:04:45 +02:00
3h 23s
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Total Time Spent: 3 hours
kuba
3 hours
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: icd/screenshot-service#5
No description provided.