chromium/chrome/test/enterprise/e2e/policy/open_page.py

# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import time
from absl import app, flags
from selenium.webdriver.common.by import By
from test_util import create_chrome_webdriver

FLAGS = flags.FLAGS

flags.DEFINE_string('url', None, 'The url to open in Chrome.')
flags.mark_flag_as_required('url')

flags.DEFINE_integer('wait_before_page_load', 0,
                     'How many seconds to wait before loading the page.')

flags.DEFINE_integer(
    'wait', 0,
    'How many seconds to wait between loading the page and printing the source.'
)

flags.DEFINE_bool('incognito', False,
                  'Set flag to open Chrome in incognito mode.')

flags.DEFINE_bool(
    'text_only', False,
    'Set flag to print only page text (defaults to full source).')


def main(argv):
  driver = create_chrome_webdriver(incognito=FLAGS.incognito)

  if FLAGS.wait_before_page_load > 0:
    time.sleep(FLAGS.wait_before_page_load)

  driver.get(FLAGS.url)

  if FLAGS.wait > 0:
    time.sleep(FLAGS.wait)

  if FLAGS.text_only:
    print(driver.find_element(By.CSS_SELECTOR, 'html').text)
  else:
    print(driver.page_source)

  driver.quit()


if __name__ == '__main__':
  app.run(main)