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 -d --restart=unless-stopped -p 4445:4444 -p 7901:7900 --shm-size 2g seleniarm/standalone-chromium:latest // http://150.230.239.12:7901/?autoconnect=1&resize=scale&password=secret // docker run --name=seleniumFirefox -d --restart=unless-stopped -p 4444:4444 -p 7900:7900 --shm-size 2g seleniarm/standalone-firefox:latest // http://150.230.239.12:7900/?autoconnect=1&resize=scale&password=secret (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:4445/wd/hub"; // const capabilities = Capabilities.chrome(); const seleniumServerUrl = "http://150.230.239.12:4444/wd/hub"; 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, 5 * 1000)); await driver?.quit(); } }())