Я пытаюсь использовать Selenium
, чтобы сделать простой тест на веб-сайте, используя chrome с Page Object Model
. Но когда я пытаюсь использовать Page Object Model
, я получаю ECONNREFUSED 127.0.0.1:port
.
Я новичок с javascript
и Selenium
.
Код был основан на некоторых примерах Selenium website
, но пример о Page Object Model
находится в Java
.
Используя этот код, он работает:
const { Builder, By, Key, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
(async function example() {
var chromeOptions = new chrome.Options();
chromeOptions.addArguments(["--remote-debugging-port=9333"]);
let driver = await new Builder().forBrowser('chrome').withCapabilities(chromeOptions).build();
try {
await driver.get('http://example.com/login');
await driver.wait(until.elementLocated(By.name("cnpj")), 10000);
await driver.findElement(By.name("cnpj")).sendKeys("28145510000176");
await driver.findElement(By.name("password")).sendKeys("12345678");
await driver.findElement(By.tagName("button")).click();
await driver.wait(until.titleIs("Title"), 30000);
} finally {
await driver.quit();
}
})().catch(err => console.log(err));
Попытка объектной модели страницы :
Объект страницы входа:
const { By, Key, until } = require('selenium-webdriver');
class LoginPage {
constructor(driver) {
this.driver = driver;
this.usernameBy = By.name("cnpj");
this.passwordBy = By.name("password");
this.submitBtnBy = By.tagName("button");
}
async loginValidUser(userName, password) {
await this.driver.findElement(this.usernameBy).sendKeys(userName);
await this.driver.findElement(this.passwordBy).sendKeys(password);
await this.driver.findElement(this.submitBtnBy).click();
await this.driver.wait(until.titleIs("Title"), 30000);
//return new HomeDash(this.driver);
}
}
module.exports = LoginPage;
Индексный файл:
const { Builder, By, Key, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const assert = require('assert');
const loginPageClass = require('./loginPage');
(async function teste() {
var chromeOptions = new chrome.Options();
chromeOptions.addArguments(["--remote-debugging-port=9222"]);
let driver = await new Builder().forBrowser('chrome').withCapabilities(chromeOptions).build();
try {
await driver.get('http://example.com/login');
await driver.wait(until.elementLocated(By.name("cnpj")), 10000);
loginPage = new loginPageClass(driver);
loginPage.loginValidUser("28145510000176", "12345678").catch(
err => console.log(err)
);
} finally {
await driver.quit();
}
})().catch(err => console.log(err));
Надеюсь, кто-то может указать мне правильное направление.
PS: Извините, я не могу поделиться сайтом, который я использую для теста.