import { Builder, By, Capabilities, WebDriver } from 'selenium-webdriver'; // docker run --name=chrome -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:latest // docker run --name=seleniumChromium --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g seleniarm/standalone-chromium:latest // d3563738379c chromium 5.83% 118.8MiB / 903.1MiB 13.15% 199kB / 710kB 1.9GB / 422MB 72 // docker run --name=seleniumFirefox --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g seleniarm/standalone-firefox:latest // docker run --name=seleniumFirefox -d --restart=unless-stopped -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g seleniarm/standalone-firefox:latest // 3dd45b3d5e1e firefox 6.39% 102.2MiB / 903.1MiB 11.31% 223kB / 88kB 2.5GB / 769MB 71 (async function firstTest() { let driver: WebDriver | null = null; try { // Selenium Server URL (Assuming your Selenium Server is running on localhost at port 4444) const seleniumServerUrl = "http://150.230.239.12:4444/wd/hub"; // 使用 Chrome 浏览器 // const capabilities = Capabilities.chrome(); const capabilities = Capabilities.firefox(); // 创建一个 WebDriver 实例 driver = new Builder() .usingServer(seleniumServerUrl) .withCapabilities(capabilities) .build(); // driver = await new Builder().forBrowser('chrome').build(); await driver.get('https://www.selenium.dev/selenium/web/web-form.html'); let title = await driver.getTitle(); console.debug(`title :>> `, title); // assert.equal("Web form", title); await driver.manage().setTimeouts({ implicit: 500 }); let textBox = await driver.findElement(By.name('my-text')); let submitButton = await driver.findElement(By.css('button')); await textBox.sendKeys('Selenium'); // await new Promise(resolve => setTimeout(resolve, 3000)); await submitButton.click(); let message = await driver.findElement(By.id('message')); let value = await message.getText(); console.debug(`value :>> `, value); // assert.equal("Received!", value); } catch (e) { console.log(e) } finally { await new Promise(resolve => setTimeout(resolve, 1000)); await driver?.quit(); } }())