Example #1
0
    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
Example #2
0
    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
Example #3
0
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
Example #5
0
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)
Example #6
0
# 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()
Example #9
0
 def setUp(self):
     super(SeleniumTestCase, self).setUp()
     self.selenium = WebDriver()
Example #10
0
 def setUpClass(cls):
     super(SeleniumTestCase, cls).setUpClass()
     cls.selenium = WebDriver()
     # Wait 10 seconds for elements to appear, always
     cls.selenium.implicitly_wait(10)
Example #11
0
 def setUpClass(cls):
     cls.selenium = WebDriver()
     super(RegisterFormTests, cls).setUpClass()
Example #12
0
def init_driver():
    driver = WebDriver(executable_path=config.phantom_path)
    return driver
Example #13
0
def create_webdriver():
    wd = WebDriver()
    wd.implicitly_wait(60)
    wd.set_window_size(1400, 1000)
    return wd
Example #14
0

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")
Example #15
0
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
Example #16
0
 def setUpClass(cls):
     if hasattr(django, 'setup'):
         # for django >= 1.7
         django.setup()
     cls.selenium = WebDriver()
     super(AbstractJSReverseTestCase, cls).setUpClass()
Example #17
0
# 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"