2

今、私はpythonのテストに取り組んでいます。BrowserMob Proxy と Selenium を使用して HTTP リクエストをキャプチャしています。

robot_globals = {'proxy': None, 'selenium': None}

def robot_setup():
    server = Server(settings.BROWSERMOB_PROXY_PATH, options={'port':     settings.BROWSERMOB_PROXY_PORT})
    server.start()
    proxy = server.create_proxy()
    proxy.selenium_proxy()
    if settings.BROWSER_TO_TEST == 'FIREFOX':
        from selenium.webdriver.firefox.webdriver import WebDriver

        selenium = WebDriver(proxy=proxy, timeout=10)
    elif settings.BROWSER_TO_TEST == 'CHROME':
        from selenium.webdriver.chrome.webdriver import WebDriver
        from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

        capabilities = DesiredCapabilities.CHROME
        proxy.add_to_capabilities(capabilities)
        selenium = WebDriver(executable_path=settings.CHROME_DRIVER_PATH,
                         desired_capabilities=capabilities,
                         service_log_path=settings.DRIVER_LOG_PATH)
    selenium.maximize_window()
    return (selenium, proxy)

class BaseGATestCase(unittest.TestCase):
    def setUp(self):
        self.proxy = robot_globals['proxy']
        self.selenium = robot_globals['selenium']
....

class TestHomePage(BaseGATestCase):
    def test_01_homepage_utme_vars(self):
        self.proxy.new_har('home_page')
        self.selenium.get('%s%s' % (settings.SERVER_URL_TO_TEST, '/'))

このコードは通常正しく動作します。しかし、月に 1 回か 2 回、システムはブラウザを起動しますが、URL をロードしません。ブラウザはただ待機しますが、ページはまったく読み込まれません。

ただし、ブラウザは self.proxy.new_har('..') なしでページをロードできます。コードはこれが好きです:

class TestHomePage(BaseGATestCase):
    def test_01_homepage_utme_vars(self):
        self.selenium.get('%s%s' % (settings.SERVER_URL_TO_TEST, '/'))

サーバーログ:

INFO 10/09 03:09:18 n.l.b.p.j.h.HttpSer~ - Version Jetty/5.1.x
INFO 10/09 03:09:18 n.l.b.p.j.u.Contain~ - Started HttpContext[/,/]
INFO 10/09 03:09:18 n.l.b.p.j.h.SocketL~ - Started SocketListener on 0.0.0.0:9159
INFO 10/09 03:09:18 n.l.b.p.j.u.Contain~ - Started    net.lightbody.bmp.proxy.jetty.jetty.Server@6a1192e9
INFO 10/09 03:10:25 n.l.b.p.j.u.Threade~ - Stopping Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,localport=9154]

前回はこの問題を修正できなかったので、私にとっては本当に奇妙ですが、翌日には修正されました。私はなぜなのか理解していない。そして今、私は同じ問題を抱えています。この問題を解決する方法を誰かが知っていれば、それは素晴らしいことです。ありがとう!

4

0 に答える 0