Ответы (точнее мое понимание проблемы):
- Как вы можете получить атрибут?
let $permaLink = $$('guid[isPermaLink]').get(0);
let attr = await browser.executeScript('return arguments[0].getAttribute("isPermaLink")', $permaLink.getWebElement());
console.log(attr) // false
Почему
await element.getAttribute('isPermaLink')
не работает?
Представьте, что у вас есть iframe
внутри страницы html, и вы ищете элемент внутри этого фрейма. В этом случае вы можете взаимодействовать с элементом в консоли браузера (найдите его и т. Д. c), но со стороны транспортира вы сможете взаимодействовать с ним только после browser.switchTo().frame(element(by.tagName('iframe')).getWebElement());
В вашем случае, у вас есть xml внутри html страницы, которая ведет себя аналогично. Однако транспортир работает только с самим документом (но не с документом внутри документа). Проблема в том, что если вы попробуете switchTo
, вы получите ошибку no such frame: element is not a frame
. Потому что метод предназначен ТОЛЬКО для работы с iframe, но концепция та же