Вы можете сделать это в pom.xml, но вы также можете отредактировать проект в Eclipse и определить исходные папки там
Я заметил, что вы на самом деле неправильно читаете стандартную структуру Apache, это следует за соглашением Maven src/main/java
и т. д., поэтому я буду использовать это. Затем, если вы используете некоторую форму интеграции Maven-Eclipse, исходные папки должны автоматически устанавливаться правильно по умолчанию. Раньше я делал это с помощью mvn eclipse:eclipse
(используя eclipse-maven-plugin), но это уже давно - я использую Intellij сейчас. Я догадываюсь, что Eclipse автоматически получает исходный путь от Maven.
Если вы не возражаете против упорядочения элементов, вы можете создать массив всех элементов, используя простой селектор body *
и цикл.
Во-первых, давайте абстрагируем экстрактор стилей, потому что мы будем использовать одно и то же несколько раз.
// get the styles for particular element
// apply all kind of JSON filtering here
function getElementStyles(elem) {
return JSON.parse(JSON.stringify(getComputedStyle(elem)))
}
// this will generate a single array containing all elements
function getStyleArray(selector) {
const styles = []
const allElements = document.querySelectorAll(selector)
for (const element of allElements) {
const style = getElementStyles(element)
styles.push(style)
}
return styles;
}
//usage
getStyleArray('body *')
Если вы хотите получить дерево, для этого уже есть несколько библиотек. Это, как говорится, вот как вы можете повторить один самостоятельно. Я использовал рекурсию, чтобы пройти через это.
// find if element is an element :D
function isElement(element) {
return element instanceof Element || element instanceof HTMLDocument;
}
// this will generate a tree style array
// all child elements are accesible using the child key
function getChildStyles(elem) {
const childStyles = []
for (let childNode of elem.childNodes) {
if (isElement(childNode)) {
const singleChildStyle = getElementStyles(childNode)
// recursion
if (childNode.hasChildNodes()) {
singleChildStyle.child = getChildStyles(childNode)
}
childStyles.push(singleChildStyle)
}
}
return childStyles
}
// usage
getChildStyles(document.body)
Обратите внимание,
Это работает !!!
Давайте применим на кукловода, вы можете просто скопировать вставить их или используйте addScriptTag .
await page.evaluate(() => {
// add the scripts we created somewhere and then use them here
return {
arrayBased: getStyleArray('body *'),
treeBased: getChildStyles(document.body)
}
})