[autotest] Fix ChromeDriver wrapper class
Close tabs opened by Telemetry for ChromeDriver to reuse remote debugging port.
Open a tab using Chrome remote debugging for ChromeDriver remote to work.
It requires a change in Telemetry to allow to close tabs[0]
BUG=chromium:355075
TEST=local test_that
Change-Id: Ib8a56e5cca09cfa5b5e740060c4e0ee5b4c16fed
Reviewed-on: https://chromium-review.googlesource.com/192133
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
diff --git a/client/common_lib/cros/chromedriver.py b/client/common_lib/cros/chromedriver.py
index 65bd0a0..4c8872c 100644
--- a/client/common_lib/cros/chromedriver.py
+++ b/client/common_lib/cros/chromedriver.py
@@ -45,10 +45,19 @@
is_component=is_component,
extra_browser_args=extra_chrome_flags)
self._browser = self._chrome.browser
+ # Close all tabs owned and opened by Telemetry, as these cannot be
+ # transferred to ChromeDriver.
+ self._browser.tabs[0].Close()
# Start ChromeDriver server
self._server = chromedriver_server(CHROMEDRIVER_EXE_PATH)
+ # Open a new tab using Chrome remote debugging. ChromeDriver expects
+ # a tab opened for remote to work. Tabs opened using Telemetry will be
+ # owned by Telemetry, and will be inaccessible to ChromeDriver.
+ urllib2.urlopen('http://localhost:%i/json/new' %
+ utils.get_chrome_remote_debugging_port())
+
chromeOptions = {'debuggerAddress':
('localhost:%d' %
utils.get_chrome_remote_debugging_port())}