Skip to content

Instantly share code, notes, and snippets.

@yucer
Created August 2, 2017 13:35
Show Gist options
  • Save yucer/c1cadffd7c3ea418bf59a1afaf0acd30 to your computer and use it in GitHub Desktop.
Save yucer/c1cadffd7c3ea418bf59a1afaf0acd30 to your computer and use it in GitHub Desktop.
Script to test opening new tab with selenium RemoteWebDriver
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import time
import tempfile
import logging
logging.basicConfig(level=logging.DEBUG)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.action_chains import ActionChains
from pprint import pprint
FF_VERSION = os.environ.get("FF_VERSION", None)
if not FF_VERSION:
sys.exit('Error: FF_VERSION shell variable not specified')
fp = webdriver.FirefoxProfile()
fp.set_preference('webdriver.log.browser.file', 'webdriver_browser.log')
fp.set_preference('webdriver.log.file', 'webdriver.log')
fp.set_preference('webdriver.log.browser.ignore', False)
fp.set_preference('webdriver.log.driver.ignore', False)
fp.set_preference('webdriver.log.profiler.ignore', False)
fp.set_preference('webdriver.log.browser.level', 'DEBUG')
fp.set_preference('webdriver.log.driver.level', 'DEBUG')
fp.set_preference('webdriver.log.profiler.level', 'DEBUG')
fp.set_preference('browser.download.folderList', 2)
fp.set_preference('browser.download.manager.showWhenStarting', False)
fp.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf, application/vnd.fdf, application/x-unknown-application-octet-stream, text/csv, application/octet-stream, application/zip, application/x-gzip')
fp.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf,application/vnd.fdf")
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("pdfjs.disabled", True)
fp.native_events_enabled = True
capabilities = DesiredCapabilities.FIREFOX.copy()
capabilities.update(
platform="LINUX", version=FF_VERSION,
# marionette=False,
firefox_binary="/var/lib/selenium/bin/firefoxes/%s/firefox" % FF_VERSION)
capabilities['moz:firefoxOptions'] = {
'args' : ['--display=:101'],
'log' : {'level' : 'trace'}
}
kwargs = dict(command_executor="http://172.17.0.2:4444/wd/hub/",
desired_capabilities=capabilities,
browser_profile=fp
)
print("\nWebdriver parameters: \n")
pprint(kwargs)
driver = webdriver.Remote(**kwargs)
driver.implicitly_wait(1)
driver.maximize_window()
driver.get("about:")
time.sleep(4)
driver.get("http://www.google.com")
time.sleep(5)
# raw_input("Press Enter to send CTRL+n...")
# driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'n')
raw_input("\nAttempt #1: Send <CTRL> + <t>. Press Enter to perform.")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
raw_input(
"\nAttempt #2: Send <CTRL> + <t> using ACTION CHAINS. Press Enter to perform.")
ActionChains(driver).key_down(Keys.CONTROL).send_keys('t').key_up(Keys.CONTROL).perform()
raw_input("Press Enter to close the browser...")
if driver:
try:
driver.close()
print("Selenium browser closed.")
except:
print('(Exception occured while closing browser window: ignored.)')
#print(traceback.format_exc())
driver = None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment