решено Это и помогло.
const text = await browser.findElement(By.css("h1")).getText();
assert.equal(text, "About me");
Попытка протестировать мой интерфейс с Selenium WebDriver. Я хочу протестировать элемент <h1>
, но .getText () не получает никакого содержимого.
Сервер и локальная веб-страница работают, больше нет элементов h1.
Это настройка:
const assert = require("assert");
const { Builder, By } = require("selenium-webdriver");
const Firefox = require('selenium-webdriver/firefox');
const firefoxOptions = new Firefox.Options().headless();
const URL = "http://192.168.1.99:3000/#!/";
let browser;
У меня есть до всех тестов, которые я хочу подключить и построить сайт.
beforeEach(async function() {
this.timeout(20000);
browser = await new Builder(Firefox)
.forBrowser('firefox')
.setFirefoxOptions(firefoxOptions)
.build();
await browser.get(URL);
});
А затем тест
// Test case
it("Test index", async () => {
const element = await browser.findElement(By.css("h1"));
const text = await element.getText();
await assert.equal(text, "About me");
});
Я получаю результат
0 passing (5s)
1 failing
1) Test Me-app
Test index:
AssertionError [ERR_ASSERTION]: '' == 'About me'
+ expected - actual
+About me
at Context.it (test/src/MochaTest.js:67:22)
at process._tickCallback (internal/process/next_tick.js:68:7)
Я запускаю все это с Мокко , делая npm test
console.log из text
показывает, что он пуст. Selenium docs говорит:
this.getText () → Обещание Получите видимый (т.е. не скрытый CSS) innerText этого элемента, включая подэлементы, без каких-либо начальных или конечных пробелов.
Но как мне тогда получить текст?