| Index: chrome/test/chromedriver/test/run_py_tests.py
|
| diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py
|
| index 7d8e74b4e54e5dbe9d5cc58a5a22a70e09027c24..b2f185bfb47492a87673edb264b1c6fc7b370d5e 100755
|
| --- a/chrome/test/chromedriver/test/run_py_tests.py
|
| +++ b/chrome/test/chromedriver/test/run_py_tests.py
|
| @@ -745,6 +745,96 @@ class ChromeDriverTest(ChromeDriverBaseTest):
|
| lots_of_data = self._driver.ExecuteScript(script)
|
| self.assertEquals('0'.zfill(int(10e6)), lots_of_data)
|
|
|
| + def testShadowDomFindElementWithSlashDeep(self):
|
| + """Checks that chromedriver can find elements in a shadow DOM using /deep/
|
| + css selectors."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + self.assertTrue(self._driver.FindElement("css", "* /deep/ #olderTextBox"))
|
| +
|
| + def testShadowDomFindChildElement(self):
|
| + """Checks that chromedriver can find child elements from a shadow DOM
|
| + element."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #olderChildDiv")
|
| + self.assertTrue(elem.FindElement("id", "olderTextBox"))
|
| +
|
| + def testShadowDomFindElementFailsFromRootWithoutSlashDeep(self):
|
| + """Checks that chromedriver can't find elements in a shadow DOM without
|
| + /deep/."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + # can't find element from the root without /deep/
|
| + with self.assertRaises(chromedriver.NoSuchElement):
|
| + self._driver.FindElement("id", "#olderTextBox")
|
| +
|
| + def testShadowDomFindElementFailsBetweenShadowRoots(self):
|
| + """Checks that chromedriver can't find elements in other shadow DOM
|
| + trees."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #youngerChildDiv")
|
| + with self.assertRaises(chromedriver.NoSuchElement):
|
| + elem.FindElement("id", "#olderTextBox")
|
| +
|
| + def testShadowDomText(self):
|
| + """Checks that chromedriver can find extract the text from a shadow DOM
|
| + element."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #olderHeading")
|
| + self.assertEqual("Older Child", elem.GetText())
|
| +
|
| + def testShadowDomSendKeys(self):
|
| + """Checks that chromedriver can call SendKeys on a shadow DOM element."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #olderTextBox")
|
| + elem.SendKeys("bar")
|
| + self.assertEqual("foobar", self._driver.ExecuteScript(
|
| + 'return document.querySelector("* /deep/ #olderTextBox").value;'))
|
| +
|
| + def testShadowDomClear(self):
|
| + """Checks that chromedriver can call Clear on a shadow DOM element."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #olderTextBox")
|
| + elem.Clear()
|
| + self.assertEqual("", self._driver.ExecuteScript(
|
| + 'return document.querySelector("* /deep/ #olderTextBox").value;'))
|
| +
|
| + def testShadowDomClick(self):
|
| + """Checks that chromedriver can call Click on an element in a shadow DOM."""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #olderButton")
|
| + elem.Click()
|
| + # the butotn's onClicked handler changes the text box's value
|
| + self.assertEqual("Button Was Clicked", self._driver.ExecuteScript(
|
| + 'return document.querySelector("* /deep/ #olderTextBox").value;'))
|
| +
|
| + def testShadowDomStaleReference(self):
|
| + """Checks that trying to manipulate shadow DOM elements that are detached
|
| + from the document raises a StaleElementReference exception"""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #olderButton")
|
| + self._driver.ExecuteScript(
|
| + 'document.querySelector("#outerDiv").innerHTML="<div/>";')
|
| + with self.assertRaises(chromedriver.StaleElementReference):
|
| + elem.Click()
|
| +
|
| + def testShadowDomDisplayed(self):
|
| + """Checks that trying to manipulate shadow DOM elements that are detached
|
| + from the document raises a StaleElementReference exception"""
|
| + self._driver.Load(self.GetHttpUrlForFile(
|
| + '/chromedriver/shadow_dom_test.html'))
|
| + elem = self._driver.FindElement("css", "* /deep/ #olderButton")
|
| + self.assertTrue(elem.IsDisplayed())
|
| + self._driver.ExecuteScript(
|
| + 'document.querySelector("#outerDiv").style.display="None";')
|
| + self.assertFalse(elem.IsDisplayed())
|
|
|
| class ChromeDriverAndroidTest(ChromeDriverBaseTest):
|
| """End to end tests for Android-specific tests."""
|
|
|