У меня есть приложение узла (на linux с селеном Chrome без головы), где у меня есть простой метод, как показано в коде ниже:
var driver = new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(new chrome.Options().addArguments('--headless'))
.build();
async function getElementWithClassnameFromPageLoadedInDriver(eleClassname, curDriver){
let arrElements = await curDriver.findElements(By.className(eleClassname));
return arrElements[0];
}
async function test(url){
await driver.get(url);
let ele = await getElementWithClassnameFromPageLoadedInDriver("myClassForH2Tag", driver);
console.log( util.inspect(ele) );
// prints the following:
/*
WebElement {
driver_:
thenableWebDriverProxy {
session_: Promise { [Object] },
executor_: Executor { w3c: true, customCommands_: [Object], log_: [Object] },
fileDetector_: null,
onQuit_: [Function: onQuit],
then: [Function: bound then],
catch: [Function: bound catch] },
id_: Promise { '612338d3-b812-42f7-99e3-533ea33f85bc' } }
*/
ele.getText();
// causes a crash with error .... .getText() is not a function
return ele;
}
Я пытаюсь получить значение тегов типа h2 , p , указав имя класса. Я занимаюсь этим уже несколько часов и пытался добавить sleep (не хотел), then () , но ничего не работает.
Пожалуйста, совет, как решить эту проблему. Я хотел бы придерживаться async / await, чтобы код легче читался.