class TestFirefoxProfile: def setup_method(self, method): self.driver = webdriver.Firefox() self.webserver = SimpleWebServer() self.webserver.start() def test_that_we_can_accept_a_profile(self): # The setup gave us a browser but we dont need it since we are doing our own thing self.driver.quit() self.profile1 = webdriver.FirefoxProfile() self.profile1.set_preference("startup.homepage_welcome_url", "%s" % "http://localhost:%d/%s.html" % (self.webserver.port, "simpleTest")) self.profile1.update_preferences() self.profile2 = webdriver.FirefoxProfile(self.profile1.path) self.driver = webdriver.Firefox(firefox_profile=self.profile2) title = self.driver.title assert "Hello WebDriver" == title def test_that_we_delete_the_profile(self): path = self.driver.firefox_profile.path self.driver.quit() assert not os.path.exists(path) def test_profiles_do_not_share_preferences(self): self.profile1 = webdriver.FirefoxProfile() self.profile1.accept_untrusted_certs = False self.profile2 = webdriver.FirefoxProfile() # Default is true. Should remain so. assert self.profile2.default_preferences["webdriver_accept_untrusted_certs"] == 'true' def teardown_method(self, method): try: self.driver.quit() except: pass #don't care since we may have killed the browser above self.webserver.stop() def _pageURL(self, name): return "http://localhost:%d/%s.html" % (self.webserver.port, name) def _loadSimplePage(self): self._loadPage("simpleTest") def _loadPage(self, name): self.driver.get(self._pageURL(name))
class TestOptions: def setup_method(self, method): self.webserver = SimpleWebServer() self.webserver.start() def test_we_can_pass_options(self): capabilities = {'marionette': True} options = Options() self.driver = webdriver.Firefox(capabilities=capabilities, firefox_options=options) self.driver.get(self.webserver.where_is('formPage.html')) self.driver.find_element_by_id("cheese") def teardown_method(self, method): try: self.driver.quit() except: pass # Don't care since we may have killed the browser above self.webserver.stop()
class TestOptions: def setup_method(self, method): self.webserver = SimpleWebServer() self.webserver.start() def test_we_can_pass_options(self): capabilities = {'marionette': True} options = Options() self.driver = webdriver.Firefox( capabilities=capabilities, firefox_options=options) self.driver.get(self.webserver.where_is('formPage.html')) self.driver.find_element_by_id("cheese") def teardown_method(self, method): try: self.driver.quit() except: pass # Don't care since we may have killed the browser above self.webserver.stop()
class TestFirefoxProfile: def setup_method(self, method): self.driver = webdriver.Firefox() self.webserver = SimpleWebServer() self.webserver.start() def test_that_we_can_accept_a_profile(self): self.profile1 = webdriver.FirefoxProfile() self.profile1.set_preference("startup.homepage_welcome_url", "%s" % "http://localhost:%d/%s.html" % (self.webserver.port, "simpleTest")) self.profile1.update_preferences() self.profile2 = webdriver.FirefoxProfile(self.profile1.path) self.driver = webdriver.Firefox(firefox_profile=self.profile2) title = self.driver.title assert "Hello WebDriver" == title def test_that_we_delete_the_profile(self): path = self.driver.firefox_profile.path self.driver.quit() assert not os.path.exists(path) def teardown_method(self, method): try: self.driver.quit() except: pass #don't care since we may have killed the browser above self.webserver.stop() def _pageURL(self, name): return "http://localhost:%d/%s.html" % (self.webserver.port, name) def _loadSimplePage(self): self._loadPage("simpleTest") def _loadPage(self, name): self.driver.get(self._pageURL(name))
class TestFirefoxProfile: def setup_method(self, method): self.driver = webdriver.Firefox() self.webserver = SimpleWebServer() self.webserver.start() def test_that_we_can_accept_a_profile(self): profile1 = webdriver.FirefoxProfile() profile1.set_preference("startup.homepage_welcome_url", self.webserver.where_is('simpleTest.html')) profile1.update_preferences() profile2 = webdriver.FirefoxProfile(profile1.path) driver = webdriver.Firefox(firefox_profile=profile2) title = driver.title driver.quit() assert "Hello WebDriver" == title def test_that_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference("sample.preference", "hi there") profile.update_preferences() assert 'hi there' == profile.default_preferences["sample.preference"] encoded = profile.encoded decoded = base64.decodestring(encoded) fp = BytesIO(decoded) zip = zipfile.ZipFile(fp, "r") for entry in zip.namelist(): if entry.endswith("user.js"): user_js = zip.read(entry) for line in user_js.splitlines(): if line.startswith(b'user_pref("sample.preference",'): assert True == line.endswith(b'hi there");') # there should be only one user.js break fp.close() def test_that_unicode_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference('sample.preference.2', unicode('hi there')) profile.update_preferences() assert 'hi there' == profile.default_preferences["sample.preference.2"] encoded = profile.encoded decoded = base64.decodestring(encoded) fp = BytesIO(decoded) zip = zipfile.ZipFile(fp, "r") for entry in zip.namelist(): if entry.endswith('user.js'): user_js = zip.read(entry) for line in user_js.splitlines(): if line.startswith(b'user_pref("sample.preference.2",'): assert True == line.endswith(b'hi there");') # there should be only one user.js break fp.close() def test_that_integer_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference("sample.int.preference", 12345) profile.update_preferences() assert 12345 == profile.default_preferences["sample.int.preference"] def test_that_boolean_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference("sample.bool.preference", True) profile.update_preferences() assert True == profile.default_preferences["sample.bool.preference"] def test_that_we_delete_the_profile(self): path = self.driver.firefox_profile.path self.driver.quit() assert not os.path.exists(path) def test_profiles_do_not_share_preferences(self): self.profile1 = webdriver.FirefoxProfile() self.profile1.accept_untrusted_certs = False self.profile2 = webdriver.FirefoxProfile() # Default is true. Should remain so. assert self.profile2.default_preferences["webdriver_accept_untrusted_certs"] == True def test_none_proxy_is_set(self): # The setup gave us a browser but we dont need it self.driver.quit() self.profile = webdriver.FirefoxProfile() proxy = None try: self.profile.set_proxy(proxy) assert False, "exception after passing empty proxy is expected" except ValueError as e: pass assert "network.proxy.type" not in self.profile.default_preferences def test_unspecified_proxy_is_set(self): # The setup gave us a browser but we dont need it self.driver.quit() self.profile = webdriver.FirefoxProfile() proxy = Proxy() self.profile.set_proxy(proxy) assert "network.proxy.type" not in self.profile.default_preferences def test_manual_proxy_is_set_in_profile(self): # The setup gave us a browser but we dont need it self.driver.quit() self.profile = webdriver.FirefoxProfile() proxy = Proxy() proxy.no_proxy = 'localhost, foo.localhost' proxy.http_proxy = 'some.url:1234' proxy.ftp_proxy = None proxy.sslProxy = 'some2.url' self.profile.set_proxy(proxy) assert self.profile.default_preferences["network.proxy.type"] == ProxyType.MANUAL['ff_value'] assert self.profile.default_preferences["network.proxy.no_proxies_on"] == 'localhost, foo.localhost' assert self.profile.default_preferences["network.proxy.http"] == 'some.url' assert self.profile.default_preferences["network.proxy.http_port"] == 1234 assert self.profile.default_preferences["network.proxy.ssl"] == 'some2.url' assert "network.proxy.ssl_port" not in self.profile.default_preferences assert "network.proxy.ftp" not in self.profile.default_preferences def test_pac_proxy_is_set_in_profile(self): # The setup gave us a browser but we dont need it self.driver.quit() self.profile = webdriver.FirefoxProfile() proxy = Proxy() proxy.proxy_autoconfig_url = 'http://some.url:12345/path' self.profile.set_proxy(proxy) assert self.profile.default_preferences["network.proxy.type"] == ProxyType.PAC['ff_value'] assert self.profile.default_preferences["network.proxy.autoconfig_url"] == 'http://some.url:12345/path' def test_autodetect_proxy_is_set_in_profile(self): # The setup gave us a browser but we dont need it self.driver.quit() self.profile = webdriver.FirefoxProfile() proxy = Proxy() proxy.auto_detect = True self.profile.set_proxy(proxy) assert self.profile.default_preferences["network.proxy.type"] == ProxyType.AUTODETECT['ff_value'] def teardown_method(self, method): try: self.driver.quit() except: pass #don't care since we may have killed the browser above self.webserver.stop() def _pageURL(self, name): return self.webserver.where_is(name + '.html') def _loadSimplePage(self): self._loadPage("simpleTest") def _loadPage(self, name): self.driver.get(self._pageURL(name))
class TestFirefoxProfile: def setup_method(self, method): self.driver = webdriver.Firefox() self.webserver = SimpleWebServer() self.webserver.start() def test_that_we_can_accept_a_profile(self): # The setup gave us a browser but we dont need it since we are doing our own thing self.driver.quit() self.profile1 = webdriver.FirefoxProfile() self.profile1.set_preference( "startup.homepage_welcome_url", "%s" % "http://localhost:%d/%s.html" % (self.webserver.port, "simpleTest")) self.profile1.update_preferences() self.profile2 = webdriver.FirefoxProfile(self.profile1.path) self.driver = webdriver.Firefox(firefox_profile=self.profile2) title = self.driver.title assert "Hello WebDriver" == title def test_that_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference("sample.preference", "hi there") profile.update_preferences() assert '"hi there"' == profile.default_preferences["sample.preference"] encoded = profile.encoded decoded = base64.decodestring(encoded) fp = StringIO(decoded) zip = zipfile.ZipFile(fp, "r") for entry in zip.namelist(): if entry.endswith("user.js"): user_js = zip.read(entry) for line in user_js.splitlines(): if line.startswith('user_pref("sample.preference",'): assert True == line.endswith('"hi there");') # there should be only one user.js break fp.close() def test_that_unicode_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference("sample.preference.2", u"hi there") profile.update_preferences() assert '"hi there"' == profile.default_preferences[ "sample.preference.2"] encoded = profile.encoded decoded = base64.decodestring(encoded) fp = StringIO(decoded) zip = zipfile.ZipFile(fp, "r") for entry in zip.namelist(): if entry.endswith("user.js"): user_js = zip.read(entry) for line in user_js.splitlines(): if line.startswith('user_pref("sample.preference.2",'): assert True == line.endswith('"hi there");') # there should be only one user.js break fp.close() def test_that_we_delete_the_profile(self): path = self.driver.firefox_profile.path self.driver.quit() assert not os.path.exists(path) def test_profiles_do_not_share_preferences(self): self.profile1 = webdriver.FirefoxProfile() self.profile1.accept_untrusted_certs = False self.profile2 = webdriver.FirefoxProfile() # Default is true. Should remain so. assert self.profile2.default_preferences[ "webdriver_accept_untrusted_certs"] == 'true' def test_sets_http_proxy(self): self.driver.quit() profile = webdriver.FirefoxProfile() proxy = Proxy() proxy.http_proxy = 'http://test.hostname:1234' profile.set_proxy(proxy) assert profile.default_preferences["network.proxy.type"] == str( ProxyType.MANUAL['ff_value']) assert profile.default_preferences[ "network.proxy.http"] == '"test.hostname"' assert profile.default_preferences["network.proxy.http_port"] == '1234' def test_sets_ssl_proxy(self): self.driver.quit() profile = webdriver.FirefoxProfile() proxy = Proxy() proxy.ssl_proxy = 'https://test.hostname:1234' profile.set_proxy(proxy) assert profile.default_preferences["network.proxy.type"] == str( ProxyType.MANUAL['ff_value']) assert profile.default_preferences[ "network.proxy.ssl"] == '"test.hostname"' assert profile.default_preferences["network.proxy.ssl_port"] == '1234' def teardown_method(self, method): try: self.driver.quit() except: pass #don't care since we may have killed the browser above self.webserver.stop() def _pageURL(self, name): return "http://localhost:%d/%s.html" % (self.webserver.port, name) def _loadSimplePage(self): self._loadPage("simpleTest") def _loadPage(self, name): self.driver.get(self._pageURL(name))
class TestFirefoxProfile: def setup_method(self, method): self.driver = webdriver.Firefox() self.webserver = SimpleWebServer() self.webserver.start() def test_that_we_can_accept_a_profile(self): # The setup gave us a browser but we dont need it since we are doing our own thing self.driver.quit() self.profile1 = webdriver.FirefoxProfile() self.profile1.set_preference("startup.homepage_welcome_url", "%s" % "http://localhost:%d/%s.html" % (self.webserver.port, "simpleTest")) self.profile1.update_preferences() self.profile2 = webdriver.FirefoxProfile(self.profile1.path) self.driver = webdriver.Firefox(firefox_profile=self.profile2) title = self.driver.title assert "Hello WebDriver" == title def test_that_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference("sample.preference", "hi there") profile.update_preferences() assert '"hi there"' == profile.default_preferences["sample.preference"] encoded = profile.encoded decoded = base64.decodestring(encoded) fp = StringIO(decoded) zip = zipfile.ZipFile(fp, "r") for entry in zip.namelist(): if entry.endswith("user.js"): user_js = zip.read(entry) for line in user_js.splitlines(): if line.startswith('user_pref("sample.preference",'): assert True == line.endswith('"hi there");') # there should be only one user.js break fp.close() def test_that_unicode_prefs_are_written_in_the_correct_format(self): # The setup gave us a browser but we dont need it self.driver.quit() profile = webdriver.FirefoxProfile() profile.set_preference("sample.preference.2", u"hi there") profile.update_preferences() assert '"hi there"' == profile.default_preferences["sample.preference.2"] encoded = profile.encoded decoded = base64.decodestring(encoded) fp = StringIO(decoded) zip = zipfile.ZipFile(fp, "r") for entry in zip.namelist(): if entry.endswith("user.js"): user_js = zip.read(entry) for line in user_js.splitlines(): if line.startswith('user_pref("sample.preference.2",'): assert True == line.endswith('"hi there");') # there should be only one user.js break fp.close() def test_that_we_delete_the_profile(self): path = self.driver.firefox_profile.path self.driver.quit() assert not os.path.exists(path) def test_profiles_do_not_share_preferences(self): self.profile1 = webdriver.FirefoxProfile() self.profile1.accept_untrusted_certs = False self.profile2 = webdriver.FirefoxProfile() # Default is true. Should remain so. assert self.profile2.default_preferences["webdriver_accept_untrusted_certs"] == 'true' def test_sets_http_proxy(self): self.driver.quit() profile = webdriver.FirefoxProfile() proxy = Proxy() proxy.http_proxy = 'http://test.hostname:1234' profile.set_proxy(proxy) assert profile.default_preferences["network.proxy.type"] == str(ProxyType.MANUAL['ff_value']) assert profile.default_preferences["network.proxy.http"] == '"test.hostname"' assert profile.default_preferences["network.proxy.http_port"] == '1234' def test_sets_ssl_proxy(self): self.driver.quit() profile = webdriver.FirefoxProfile() proxy = Proxy() proxy.ssl_proxy = 'https://test.hostname:1234' profile.set_proxy(proxy) assert profile.default_preferences["network.proxy.type"] == str(ProxyType.MANUAL['ff_value']) assert profile.default_preferences["network.proxy.ssl"] == '"test.hostname"' assert profile.default_preferences["network.proxy.ssl_port"] == '1234' def teardown_method(self, method): try: self.driver.quit() except: pass #don't care since we may have killed the browser above self.webserver.stop() def _pageURL(self, name): return "http://localhost:%d/%s.html" % (self.webserver.port, name) def _loadSimplePage(self): self._loadPage("simpleTest") def _loadPage(self, name): self.driver.get(self._pageURL(name))
self.assertEquals(cookie, driver.get_cookies()[0]) driver.quit() driver = webdriver.connect('firefox') self.assertEquals([], driver.get_cookies()) driver.quit() def testCopyFromSource(self): dir_name = tempfile.mkdtemp() self._create_dummy_file(dir_name) profile = FirefoxProfile() profile.copy_profile_source(dir_name) profile_dir = profile.path dst_pref_file = open(os.path.join(profile_dir, self.DUMMY_FILE_NAME)) content = dst_pref_file.read() self.assertEquals(self.DUMMY_FILE_CONTENT, content) def _create_dummy_file(self, dir_name): pref_file = open(os.path.join(dir_name, self.DUMMY_FILE_NAME), "w") pref_file.write(self.DUMMY_FILE_CONTENT) pref_file.close() if __name__ == "__main__": logging.basicConfig(level=logging.INFO) webserver = SimpleWebServer(8000) webserver.start() try: unittest.main() finally: webserver.stop()
driver.add_cookie(utils.convert_cookie_to_json(cookie)) self.assertEquals(cookie, driver.get_cookies()[0]) driver.quit() driver = webdriver.connect('firefox') self.assertEquals([], driver.get_cookies()) driver.quit() def testCopyFromSource(self): dir_name = tempfile.mkdtemp() self._create_dummy_file(dir_name) profile = FirefoxProfile() profile.copy_profile_source(dir_name) profile_dir = profile.path dst_pref_file = open(os.path.join(profile_dir, self.DUMMY_FILE_NAME)) content = dst_pref_file.read() self.assertEquals(self.DUMMY_FILE_CONTENT, content) def _create_dummy_file(self, dir_name): pref_file = open(os.path.join(dir_name, self.DUMMY_FILE_NAME), "w") pref_file.write(self.DUMMY_FILE_CONTENT) pref_file.close() if __name__ == "__main__": logging.basicConfig(level=logging.INFO) webserver = SimpleWebServer(8000) webserver.start() try: unittest.main() finally: webserver.stop()