Closed Bug 1502307 Opened 6 years ago Closed 6 years ago

Marionette reports textfield in Shadow DOM not accessible

Categories

(Remote Protocol :: Marionette, defect, P3)

63 Branch
defect

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1503860

People

(Reporter: pascal, Unassigned)

Details

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:63.0) Gecko/20100101 Firefox/63.0 Steps to reproduce: When trying to send text to a textfield embedded in a web component (shadow dom), the driver refuses with an org.openqa.selenium.ElementNotInteractableException, while in fact the element is interactable in the browser. System Version: geckodriver 0.23 Platform: macOS 10.12.6 Firefox: 63.0 Selenium: 3.14.0 # Testcase using Selenium/Java bindings and Geckodriver WebDriver driver = new FirefoxDriver(); driver.get("https://pbi-qfs.github.io/selenium-demos/shadowdom/attachShadow_only.html"); Thread.sleep(1000); // just to be sure all js work in setting up the web components is done // Access text field in shadow DOM final WebElement element = (WebElement)((JavascriptExecutor)driver).executeScript("return document.getElementsByTagName(\"my-element\")[0].shadowRoot.getElementsByTagName(\"input\")[0]"); element.sendKeys("Text"); // Throws org.openqa.selenium.ElementNotInteractableException: Element <input id="shadow-text-inside" type="text"> is not reachable by keyboard Actual results: # Trace-level log ... INFORMATION: Detected dialect: W3C 1540550410194 webdriver::server DEBUG -> POST /session/cc7da5a9-7538-ae44-89dd-553171554281/url { "url": "https:\u002f\u002fpbi-qfs.github.io\u002fselenium-demos\u002fshadowdom\u002fattachShadow_only.html" } 1540550410199 Marionette TRACE 0 -> [0,2,"WebDriver:Navigate",{"url":"https://pbi-qfs.github.io/selenium-demos/shadowdom/attachShadow_only.html"}] 1540550410204 Marionette DEBUG [4294967297] Received DOM event beforeunload for about:blank 1540550410323 Marionette DEBUG [4294967297] Received DOM event pagehide for about:blank 1540550410463 Marionette DEBUG [4294967297] Received DOM event DOMContentLoaded for https://pbi-qfs.github.io/selenium-demos/shadowdom/attachShadow_only.html 1540550410466 Marionette DEBUG [4294967297] Received DOM event pageshow for https://pbi-qfs.github.io/selenium-demos/shadowdom/attachShadow_only.html 1540550410467 Marionette TRACE 0 <- [1,2,null,{"value":null}] 1540550410469 webdriver::server DEBUG <- 200 OK {"value":null} 1540550411479 webdriver::server DEBUG -> POST /session/cc7da5a9-7538-ae44-89dd-553171554281/execute/sync { "script": "return document.getElementsByTagName(\"my-element\")[0].shadowRoot.getElementsByTagName(\"input\")[0]", "args": [ ] } 1540550411481 Marionette TRACE 0 -> [0,3,"WebDriver:ExecuteScript",{"args":[],"newSandbox":false,"script":"return document.getElementsByTagName(\"my-element\")[0].shadowRoot.getElementsByTagName(\"input\")[0]","specialPowers":false}] 1540550411485 Marionette TRACE 0 <- [1,3,null,{"value":{"element-6066-11e4-a52e-4f735466cecf":"e7c7adab-7869-1945-851b-659d5d162f4d"}}] 1540550411485 webdriver::server DEBUG <- 200 OK {"value":{"element-6066-11e4-a52e-4f735466cecf":"e7c7adab-7869-1945-851b-659d5d162f4d"}} [org.openqa.selenium.remote.RemoteWebElement@7f314ac3 -> unknown locator] 1540550411493 webdriver::server DEBUG -> POST /session/cc7da5a9-7538-ae44-89dd-553171554281/element/e7c7adab-7869-1945-851b-659d5d162f4d/value { "id": "e7c7adab-7869-1945-851b-659d5d162f4d", "text": "Text", "value": [ "T", "e", "x", "t" ] } 1540550411494 Marionette TRACE 0 -> [0,4,"WebDriver:ElementSendKeys",{"id":"e7c7adab-7869-1945-851b-659d5d162f4d","text":"Text","value":["T","e","x","t"]}] 1540550411500 Marionette TRACE 0 <- [1,4,{"error":"element not interactable","message":"Element <input id=\"shadow-text-inside\" type=\"text\"> is not reachable ... ch/</req<@chrome://marionette/content/listener.js:482:14\ndispatch/<@chrome://marionette/content/listener.js:477:15\n"},null] 1540550411504 webdriver::server DEBUG <- 400 Bad Request {"value":{"error":"element not interactable","message":"Element <input id=\"shadow-text-inside\" type=\"text\"> is not reachable by keyboard","stacktrace":"WebDriverError@chrome://marionette/content/error.js:178:5\nElementNotInteractableError@chrome://marionette/content/error.js:286:5\nwebdriverSendKeysToElement@chrome://marionette/content/interaction.js:566:11\ninteraction.sendKeysToElement@chrome://marionette/content/interaction.js:553:11\nsendKeysToElement@chrome://marionette/content/listener.js:1307:9\ndispatch/</req<@chrome://marionette/content/listener.js:482:14\ndispatch/<@chrome://marionette/content/listener.js:477:15\n"}} Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: Element <input id="shadow-text-inside" type="text"> is not reachable by keyboard Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:05:20.749Z' System info: host: 'Elektrik.local', ip: '10.99.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_172' Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 63.0, javascriptEnabled: true, moz:accessibilityChecks: false, moz:geckodriverVersion: 0.23.0, moz:headless: false, moz:processID: 61198, moz:profile: /var/folders/j3/glwdgbj17jl..., moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: MAC, platformName: MAC, platformVersion: 16.7.0, rotatable: false, setWindowRect: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify} Session ID: cc7da5a9-7538-ae44-89dd-553171554281 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548) at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:276) at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:100) Expected results: The text should be set.
Shadow DOM support hasn't been added to the WebDriver spec yet. A first proposal is up on https://github.com/w3c/webdriver/pull/1320.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3
Duping to bug 1503860 because it has a better description.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.