Chromium Code Reviews| 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..b312f5a97ad4609f46e944b5d472c907a5f5a5d0 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 ohClicked handler changes the text box's value |
|
samuong
2014/12/16 07:56:59
"button's onClicked"?
mcharsley
2014/12/18 13:03:42
Done.
|
| + 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.""" |