60 lines
2.5 KiB
TypeScript
60 lines
2.5 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 --restart=unless-stopped -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g seleniarm/standalone-firefox:latest
|
|
// http://150.230.239.12:7900/?autoconnect=1&resize=scale&password=secret
|
|
// 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, 10000));
|
|
await driver?.quit();
|
|
}
|
|
}()) |