Files
selenium-example/fitst.ts
2023-12-10 20:49:54 +08:00

59 lines
2.4 KiB
TypeScript

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 -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();
}
}())