Den Versuch, 'jetzt shop', die für den Zugriff auf Taste unter den äußeren Männern Verschleißabschnitt, in https://shop.polymer-project.org/ mit dem folgenden Code auf Chrome-Browser (V51) 's JS-Konsole:Zugriff auf Schatten DOM-Elemente (Polymer) durch Selen javascriptExecutor
document.querySelector('shop-app').shadowRoot.querySelector('shop-home').shadowRoot.querySelector('shop-button');
ich das gleiche Element in meinem Automatisierung Test zuzugreifen versucht, Selen verwendet, Linie 1: WebElement shopBtn = (WebElement)((JavascriptExecutor)driver).executeScript("return document.querySelector('shop-app').shadowRoot.querySelector('shop-home').shadowRoot.querySelector('shop-button')");
Linie 2: shopBtn.click();
Dieser Fehlercode gibt:
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Cannot read property 'querySelector' of null
(Session info: chrome=51.0.2704.106)
(Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Mac OS X 10.11.3 x86_64).
Jede Hilfe in dieser Hinsicht wird sehr geschätzt.
sollten Sie wahrscheinlich [Polymer DOM api] (https: //www.pol ymer-project.org/1.0/docs/devguide/local-dom#dom-api) – Alan
Verwenden Sie ein schattiges DOM (Standard) oder ein Schatten-DOM in einem Browser, der es nativ unterstützt (Chrome)? –
Ich verwende Chrome, da es Shadow DOM nativ unterstützt. Es funktioniert sehr einfach im Firefox Browser, aufgrund von Polyfills, aber nicht in Chrome, obwohl derselbe Code gut in der JS-Konsole von Chrome Browser funktioniert. – user564769