class TestWebDriver(object): def setup_method(self, method): from browsermobproxy.client import Client self.client = Client("localhost:9090") def teardown_method(self, method): self.client.close() @pytest.mark.human def test_i_want_my_by_capability(self): capabilities = selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX self.client.add_to_capabilities(capabilities) driver = webdriver.Firefox(capabilities=capabilities) self.client.new_har("mtv") targetURL = "http://www.mtv.com" self.client.rewrite_url( ".*american_flag-384x450\\.jpg", "http://www.foodsubs.com/Photos/englishmuffin.jpg") driver.get(targetURL) time.sleep(5) driver.quit() @pytest.mark.human def test_i_want_my_by_proxy_object(self): driver = webdriver.Firefox(proxy=self.client) self.client.new_har("mtv") targetURL = "http://www.mtv.com" self.client.rewrite_url( ".*american_flag-384x450\\.jpg", "http://www.foodsubs.com/Photos/englishmuffin.jpg") driver.get(targetURL) time.sleep(5) driver.quit() def test_what_things_look_like(self): bmp_capabilities = copy.deepcopy( selenium.webdriver.common.desired_capabilities.DesiredCapabilities. FIREFOX) self.client.add_to_capabilities(bmp_capabilities) proxy_capabilities = copy.deepcopy( selenium.webdriver.common.desired_capabilities.DesiredCapabilities. FIREFOX) proxy_addr = 'localhost:{}'.format(self.client.port) proxy = Proxy({'httpProxy': proxy_addr, 'sslProxy': proxy_addr}) proxy.add_to_capabilities(proxy_capabilities) assert bmp_capabilities == proxy_capabilities
class TestWebDriver(object): def setup_method(self, method): from browsermobproxy.client import Client self.client = Client("localhost:9090") def teardown_method(self, method): self.client.close() @pytest.mark.human def test_i_want_my_by_capability(self): capabilities = selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX self.client.add_to_capabilities(capabilities) driver = webdriver.Firefox(capabilities=capabilities) self.client.new_har("mtv") targetURL = "http://www.mtv.com" self.client.rewrite_url(".*american_flag-384x450\\.jpg", "http://www.foodsubs.com/Photos/englishmuffin.jpg") driver.get(targetURL) time.sleep(5) driver.quit() @pytest.mark.human def test_i_want_my_by_proxy_object(self): driver = webdriver.Firefox(proxy=self.client) self.client.new_har("mtv") targetURL = "http://www.mtv.com" self.client.rewrite_url(".*american_flag-384x450\\.jpg", "http://www.foodsubs.com/Photos/englishmuffin.jpg") driver.get(targetURL) time.sleep(5) driver.quit() def test_what_things_look_like(self): bmp_capabilities = copy.deepcopy(selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX) self.client.add_to_capabilities(bmp_capabilities) proxy_capabilities = copy.deepcopy(selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX) proxy_addr = 'localhost:%d' % self.client.port proxy = Proxy({'httpProxy': proxy_addr,'sslProxy': proxy_addr}) proxy.add_to_capabilities(proxy_capabilities) assert bmp_capabilities == proxy_capabilities
class TestWebDriver(object): def setup_method(self, method): from browsermobproxy.client import Client self.client = Client("localhost:9090") self.driver = None def teardown_method(self, method): self.client.close() if self.driver is not None: self.driver.quit() @pytest.mark.human def test_i_want_my_by_capability(self): capabilities = selenium.webdriver.common.desired_capabilities.DesiredCapabilities.CHROME self.client.add_to_capabilities(capabilities) # sets self.driver for proper clean up self._create_webdriver(capabilites=capabilities) self._run_url_rewrite_test() @pytest.mark.human def test_i_want_my_by_proxy_object(self): self._create_webdriver(capabilites=selenium.webdriver.common.desired_capabilities.DesiredCapabilities.CHROME, proxy=self.client) self._run_url_rewrite_test() def test_what_things_look_like(self): bmp_capabilities = copy.deepcopy(selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX) self.client.add_to_capabilities(bmp_capabilities) proxy_capabilities = copy.deepcopy(selenium.webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX) proxy_addr = 'localhost:%d' % self.client.port proxy = Proxy({'httpProxy': proxy_addr,'sslProxy': proxy_addr}) proxy.add_to_capabilities(proxy_capabilities) assert bmp_capabilities == proxy_capabilities def _create_webdriver(self, capabilites, proxy=None): chrome_binary = environ.get("CHROME_BIN", None) if chrome_binary is not None: capabilites.update({ "chromeOptions": { "binary": chrome_binary, "args": ['no-sandbox'] } }) if proxy is None: self.driver = webdriver.Remote(desired_capabilities=capabilites) else: self.driver = webdriver.Remote(desired_capabilities=capabilites, proxy=proxy) def _run_url_rewrite_test(self): targetURL = "https://www.saucelabs.com/versions.js" assert 200 == self.client.rewrite_url( "https://www.saucelabs.com/versions.+", "https://www.saucelabs.com/versions.json" ) self.driver.get(targetURL) assert "Sauce Connect" in self.driver.page_source assert self.client.clear_all_rewrite_url_rules() == 200 self.driver.get(targetURL) assert "Sauce Connect" not in self.driver.page_source
class TestWebDriver(object): def setup_method(self, method): from browsermobproxy.client import Client self.client = Client("localhost:9090") self.driver = None def teardown_method(self, method): self.client.close() if self.driver is not None: self.driver.quit() @pytest.mark.human def test_i_want_my_by_capability(self): capabilities = selenium.webdriver.common.desired_capabilities.DesiredCapabilities.CHROME self.client.add_to_capabilities(capabilities) # sets self.driver for proper clean up self._create_webdriver(capabilites=capabilities) self._run_url_rewrite_test() @pytest.mark.human def test_i_want_my_by_proxy_object(self): self._create_webdriver(capabilites=selenium.webdriver.common. desired_capabilities.DesiredCapabilities.CHROME, proxy=self.client) self._run_url_rewrite_test() def test_what_things_look_like(self): bmp_capabilities = copy.deepcopy( selenium.webdriver.common.desired_capabilities.DesiredCapabilities. FIREFOX) self.client.add_to_capabilities(bmp_capabilities) proxy_capabilities = copy.deepcopy( selenium.webdriver.common.desired_capabilities.DesiredCapabilities. FIREFOX) proxy_addr = 'localhost:%d' % self.client.port proxy = Proxy({'httpProxy': proxy_addr, 'sslProxy': proxy_addr}) proxy.add_to_capabilities(proxy_capabilities) assert bmp_capabilities == proxy_capabilities def _create_webdriver(self, capabilites, proxy=None): chrome_binary = environ.get("CHROME_BIN", None) if chrome_binary is not None: capabilites.update({ "chromeOptions": { "binary": chrome_binary, "args": ['no-sandbox'] } }) if proxy is None: self.driver = webdriver.Remote(desired_capabilities=capabilites) else: self.driver = webdriver.Remote(desired_capabilities=capabilites, proxy=proxy) def _run_url_rewrite_test(self): targetURL = "https://www.saucelabs.com/versions.js" assert 200 == self.client.rewrite_url( "https://www.saucelabs.com/versions.+", "https://www.saucelabs.com/versions.json") self.driver.get(targetURL) assert "Sauce Connect" in self.driver.page_source assert self.client.clear_all_rewrite_url_rules() == 200 self.driver.get(targetURL) assert "Sauce Connect" not in self.driver.page_source