Чтобы отключить сообщение «Chrome контролируется программным обеспечением автоматического тестирования» в Selenium, вы можете попробовать следующие методы:
- Используйте ChromeOptions: при создании экземпляра ChromeDriver вы можете установить для возможности «excludeSwitches» значение «enable-automation». Это предотвратит появление сообщения. Вот пример фрагмента кода на Python:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Chrome(options=options)
- Использовать Chrome DesiredCapabilities: вы можете установить для желаемой возможности «chrome.switches» значение «–disable-automation» при создании объекта DesiredCapabilities. Вот пример на Java:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-automation");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(capabilities);
- Использовать протокол Chrome DevTools. Вы можете использовать протокол Chrome DevTools для взаимодействия с внутренними компонентами браузера и изменения его поведения. Отправив команду
Page.setInterceptFileChooserDialogс параметромenabled, установленным в значениеtrue, вы можете отключить сообщение программного обеспечения автоматического тестирования. Вот пример на JavaScript:
const { chromium } = require('playwright');
async function disableAutomationMessage() {
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
await context.send('Page.setInterceptFileChooserDialog', { enabled: true });
await page.goto('https://www.example.com');
// Rest of your automation code here
}
disableAutomationMessage();