(sel, doc, contextNode, bySort)
| 4595 | } |
| 4596 | |
| 4597 | function getElement(sel, doc, contextNode, bySort) { |
| 4598 | try { |
| 4599 | if (!isXPath(sel)) { |
| 4600 | let checkShadow = s => { |
| 4601 | let selSplit = s.split(" =>> "); |
| 4602 | if (selSplit.length === 2) { |
| 4603 | let ele = doc.querySelector(selSplit[0]); |
| 4604 | return ele && ele.shadowRoot && ele.shadowRoot.querySelector(selSplit[1]); |
| 4605 | } else return doc.querySelector(s); |
| 4606 | }; |
| 4607 | if (!bySort) { |
| 4608 | return checkShadow(sel); |
| 4609 | } else { |
| 4610 | let selArr = sel.split(","); |
| 4611 | try { |
| 4612 | for (let i = 0; i < selArr.length; i++) { |
| 4613 | let ele = checkShadow(selArr[i].trim()); |
| 4614 | if (ele) { |
| 4615 | return ele; |
| 4616 | } |
| 4617 | } |
| 4618 | } catch(e) { |
| 4619 | return checkShadow(sel); |
| 4620 | } |
| 4621 | return null; |
| 4622 | } |
| 4623 | } |
| 4624 | } catch(e) { |
| 4625 | debug(e, 'Error selector'); |
| 4626 | } |
| 4627 | return getElementByXpath(sel, doc, contextNode); |
| 4628 | } |
| 4629 | |
| 4630 | function compareNodeName(node, names) { |
| 4631 | if (!node || !node.nodeName || !node.nodeName.toLowerCase) { |
no test coverage detected