def get_driver(self): """ Only creates the driver if not present and returns it. :return: ``WebDriver`` instance. """ # Dedicated mode if hasattr(settings, 'CRAWLABLE_PHANTOMJS_DEDICATED_MODE' ) and settings.CRAWLABLE_PHANTOMJS_DEDICATED_MODE: if not self._web_driver: self._web_driver = DedicatedWebDriver(port=getattr( settings, 'CRAWLABLE_PHANTOMJS_DEDICATED_PORT', 8910)) elif not is_connectable(self._web_driver.service.port): raise RuntimeError( 'Cannot connect to dedicated PhantomJS instance on: %s' % self._web_driver.service.service_url) # Instance based mode (more for testing purposes). When debugging, you can even replace the PhantomJS webdriver # with firefox and remove the arguments to the web driver constructor below. else: if not self._web_driver: self._web_driver = WebDriver(service_args=self.service_args) elif not is_connectable(self._web_driver.service.port): self._web_driver.service.stop() self._web_driver = WebDriver(service_args=self.service_args) # Make sure it doesn't time out. self._web_driver.set_script_timeout(30) return self._web_driver
def getHtml(self, url, referer="https://www.baidu.com/"): _result = "" try: my_dc = DesiredCapabilities.PHANTOMJS.copy() my_dc["browserName"] = "chrome" my_dc["platform"] = "mac" my_dc["version"] = "63.0.3239.84" my_dc["phantomjs.page.settings.loadImages"] = False my_dc["phantomjs.page.settings.userAgent"] = HtmlURLUtil.__USER_AGENT service_args = ["--load-images=false", "--disk-cache=false", "--ignore-ssl-errors=true"] # "--webdriver-logfile=webdriver.log","--webdriver-loglevel=INFO" for head, value in self.headers.iteritems(): my_dc["phantomjs.page.customHeaders.{}".format(head)] = value my_dc["phantomjs.page.customHeaders.Referer"] = referer self.driver = WebDriver(desired_capabilities=my_dc, service_args=service_args) self.driver.set_script_timeout(20) self.driver.set_page_load_timeout(30) self.driver.implicitly_wait(5) self.driver.set_window_size(2560, 1066) self.driver.get(url) # 保存网页快照图片 # self.driver.save_screenshot(md5_util.md5(url)+".png") _result = self.driver.page_source except: log.getLogger().exception("HtmlURLUtil getHtml error...") # self.driver.close() self.driver.quit() return _result
def get_driver(): if settings.OPEN511_UI_TEST_BROWSER == 'phantomjs': from selenium.webdriver.phantomjs.webdriver import WebDriver else: from selenium.webdriver.firefox.webdriver import WebDriver driver = WebDriver() driver.implicitly_wait(5) driver.set_window_size(1000, 700) return driver
def main(id_list, collection_name): driver = WebDriver( executable_path='F:/phantomjs-2.1.1-windows/bin/phantomjs.exe', port=5003) ui.WebDriverWait(driver, 10) # firefox_capabilities = DesiredCapabilities.FIREFOX # driver = webdriver.Firefox(capabilities=firefox_capabilities, executable_path='F:/py_enviroment/Library/bin/geckodriver') # wait = ui.WebDriverWait(driver, 10) count = 0 for i in range(len(id_list)): try: count = count + getContent(id_list[i], driver, collection_name) except: driver.quit() raise
class AbstractJSReverseTestCase(object): client = Client() selenium = WebDriver() @classmethod def setUpClass(cls): if hasattr(django, 'setup'): # for django >= 1.7 django.setup() cls.selenium = WebDriver() super(AbstractJSReverseTestCase, cls).setUpClass() @classmethod def tearDownClass(cls): cls.selenium.quit() super(AbstractJSReverseTestCase, cls).tearDownClass() def assertEqualJSUrlEval(self, url_call, expected_url): response = self.client.post('/jsreverse/') self.assertEqual(self.selenium.execute_script('%s return %s;' % (smart_str(response.content), url_call)), expected_url)
# Python language bindings for Selenium WebDriver # https://pypi.python.org/pypi/selenium from selenium.webdriver.phantomjs.webdriver import WebDriver dirver = WebDriver( executable_path="../example/phantomjs-2.1.1-windows/bin/phantomjs.exe") dirver.get('http://www.baidu.com') print(dirver.title)
# -*- coding: utf-8 -*- import pytest from selenium_respectful import RespectfulWebdriver from selenium_respectful import SeleniumRespectfulError, SeleniumRespectfulRateLimitedError import redis from selenium.webdriver.remote.webdriver import WebDriver as BaseWebDriver from selenium.webdriver.phantomjs.webdriver import WebDriver webdriver = WebDriver() # Tests def test_setup(): driver = RespectfulWebdriver(webdriver=webdriver) driver.unregister_realm("TEST123") def test_the_class_should_provide_a_default_configuration(): assert isinstance(getattr(RespectfulWebdriver, "default_config"), dict) assert "redis" in RespectfulWebdriver.default_config assert "safety_threshold" in RespectfulWebdriver.default_config def test_the_instance_should_have_a_property_that_holds_the_config(): driver = RespectfulWebdriver(webdriver=webdriver) assert isinstance(driver.config, dict)
def setUpClass(cls): if hasattr(django, 'setup'): # for django >= 1.7 django.setup() cls.selenium = WebDriver() super(JSReverseViewTestCaseMinified, cls).setUpClass()
def setUp(self): super(SeleniumTestCase, self).setUp() self.selenium = WebDriver()
def setUpClass(cls): super(SeleniumTestCase, cls).setUpClass() cls.selenium = WebDriver() # Wait 10 seconds for elements to appear, always cls.selenium.implicitly_wait(10)
def setUpClass(cls): cls.selenium = WebDriver() super(RegisterFormTests, cls).setUpClass()
def init_driver(): driver = WebDriver(executable_path=config.phantom_path) return driver
def create_webdriver(): wd = WebDriver() wd.implicitly_wait(60) wd.set_window_size(1400, 1000) return wd
def savefile(url, filename): urllib.request.urlretrieve(url, filename, reporthook) TempPath = pathlib.Path(str(os.sep).join(["_classic_", "Interface"])) a = input("按回车开始自动检测: ") print("\n开始读取NGA页面,可能需要一点时间……") exename = 'phantomjs.exe' if os.name == 'nt' else 'phantomjs' driver = WebDriver(executable_path=str(os.sep).join( ['selenium', 'bin', exename]), port=5001) page_link = "http://nga.178.com/read.php?tid=18302645&_ff=240" driver.get(page_link) try: WebDriverWait(driver, 15).until( EC.presence_of_element_located((By.CLASS_NAME, "quote"))) print("已读取:", driver.title, "\n") except Exception as e: print(e) quote_list = driver.find_elements_by_class_name("quote")
def create_webdriver(): wd = WebDriver('/home/travis/build/mapbender/mapbender-starter/application/bin/phantomjs') wd.set_window_size(1400,1000) wd.implicitly_wait(300) return wd
def setUpClass(cls): if hasattr(django, 'setup'): # for django >= 1.7 django.setup() cls.selenium = WebDriver() super(AbstractJSReverseTestCase, cls).setUpClass()
# from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0 from selenium.webdriver.phantomjs.webdriver import WebDriver # Create a new instance of the Firefox driver driver = WebDriver( executable_path='/opt/phantomjs-2.1.1-linux-x86_64/bin/phantomjs', port=5001) # go to the google home page driver.get("http://www.baidu.com") # the page is ajaxy so the title is originally this: print(driver.title) # find the element that's name attribute is q (the google search box) inputElement = driver.find_element_by_id("kw") # type in the search inputElement.send_keys("cheese!") # submit the form (although google automatically searches now without submitting) inputElement.submit() try: # we have to wait for the page to refresh, the last thing that seems to be updated is the title WebDriverWait(driver, 10).until(EC.title_contains("cheese!")) # You should see "cheese! - Google Search"