Files
selenium-example/fitst.ts
2023-12-10 22:09:06 +08:00

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