def setUp(self): self.driver = Web.driver = SeleniumHatch.gen_local_driver("chrome", SeleniumHatch.get_remote_browser_capabilities("chrome")) Web.NavigateTo('https://www.baidu.com') self.test_tmp_path = "./data/test_tmp" if not os.path.exists(self.test_tmp_path): os.makedirs(self.test_tmp_path)
def __init__(self): super(LocalDriver,self).__init__(is_local_driver = True) chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities(browser = LocalDriver._browser, download_path=LocalDriver._download_path, marionette = LocalDriver._marionette) self._default_drivers = [("", SeleniumHatch.gen_local_driver(browser = "chrome", capabilities = chrome_capabilities))]
def test_gen_local_driver(self): chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities() self.assertIsInstance(chrome_capabilities, dict) driver = SeleniumHatch.gen_local_driver( browser="chrome", capabilities=chrome_capabilities) self.assertIsInstance(driver, webdriver.Chrome) driver.quit()
def __init__(self): super(RemoteDriver, self).__init__(is_local_driver=False) self._default_devices = [] self._default_drivers = [] executors = SeleniumHatch.get_remote_executors(RemoteDriver._remote_ip, RemoteDriver._remote_port) chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities(browser=RemoteDriver._browser, download_path=RemoteDriver._download_path, marionette=RemoteDriver._marionette) for executor in executors: fn = FileSystemUtils.get_legal_filename(executor) self._default_devices.append(fn) self._default_drivers.append((fn, SeleniumHatch.gen_remote_driver(executor, chrome_capabilities)))
def test_gen_remote_driver(self): self.hub.start_server() self.node.start_server() executors = SeleniumHatch.get_remote_executors("localhost", 4444) self.assertIsInstance(executors, (tuple, list)) chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities() self.assertIsInstance(chrome_capabilities, dict) driver = SeleniumHatch.gen_remote_driver(executors[0], chrome_capabilities) self.assertIsInstance(driver, webdriver.Remote) driver.quit()
def test_webuidriver_remote(self): """ Selenium grid mode. You can use SeleniumJar to start service. Also, you can use command lines if you installed rtsf-web, like this: wrhub selenium-server-standalone-3.14.0.jar --port 4444 wrnode selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 10.154.123.74 --hub-port 4444 """ hub = SeleniumJar(self.jar_path, self.java_path).hub(4444) hub.start_server() node = SeleniumJar(self.jar_path, self.java_path).node(5555, ("localhost", 4444)) node.start_server() executors = SeleniumHatch.get_remote_executors("localhost", 4444) # self.driver = webuidriver.Remote(executor, options=self.opt) 与下面语句效果是一样的 self.driver = webuidriver.Remote(executors[0], desired_capabilities=self.opt.to_capabilities()) self.driver.get('http://www.baidu.com') time.sleep(1) # webuidriver.Remote 是 webdriver.Chrome 的子类 self.assertTrue(issubclass(webuidriver.Chrome, webdriver.Remote)) self.assertIsInstance(self.driver, webdriver.Remote) self.driver.close() self.driver.quit() hub.stop_server() node.stop_server()
def test_gen_local_driver(self): chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities() self.assertIsInstance(chrome_capabilities, dict) self.assertIn( "ignore-certificate-errors", chrome_capabilities["goog:chromeOptions"]["excludeSwitches"]) self.assertIn( "enable-automation", chrome_capabilities["goog:chromeOptions"]["excludeSwitches"]) driver = SeleniumHatch.gen_local_driver( browser="chrome", capabilities=chrome_capabilities) self.assertIsInstance(driver, webdriver.Chrome) driver.get("http://www.baidu.com") time.sleep(1) driver.quit()
def test_node(self): self.node.start_server() self.assertEqual(self.node.is_runnnig(), True) executors = SeleniumHatch.get_remote_executors("localhost", 4444) self.assertEqual(len(executors), 1) self.assertIn("5555", executors[0]) self.node.re_start_server() self.assertEqual(self.node.is_runnnig(), True)
def test_gen_remote_driver(self): self.hub.start_server() self.node.start_server() executors = SeleniumHatch.get_remote_executors("localhost", 4444) self.assertIsInstance(executors, (tuple, list)) chrome_capabilities = SeleniumHatch.get_remote_browser_capabilities() self.assertIsInstance(chrome_capabilities, dict) self.assertIn( "ignore-certificate-errors", chrome_capabilities["goog:chromeOptions"]["excludeSwitches"]) self.assertIn( "enable-automation", chrome_capabilities["goog:chromeOptions"]["excludeSwitches"]) driver = SeleniumHatch.gen_remote_driver(executors[0], chrome_capabilities) self.assertIsInstance(driver, webdriver.Remote) driver.get("http://www.baidu.com") time.sleep(1) driver.quit()