当前位置: 首页 > 面试题库 >

Django Jenkins处理到Selenium服务器时引发WebDriverException

訾淇
2023-03-14
问题内容

我通过命令启动Selenium服务器中心

java -jar selenium-server-standalone-2.33.0.jar -role hub

和Selenium服务器节点通过命令

java -jar selenium-server-standalone-2.33.0.jar -role node -hub http://localhost:4444/grid/register -browser browserName=htmlunit

然后我试图执行代码:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
server =  'http://localhost:4444/wd/hub'
dc = DesiredCapabilities.HTMLUNIT
browser = webdriver.Remote(server, dc)
browser.get('http://localhost:8000')

之后一切都很好。但是,当我尝试开始进行詹金斯测试时:

from django.test import TestCase, LiveServerTestCase
from selenium.webdriver.common import proxy
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.remote.webdriver import WebDriver

class SeleniumTest(LiveServerTestCase):

    @classmethod
    def setUpClass(cls):
        p = proxy.Proxy({
        'proxyType': proxy.ProxyType().MANUAL,
        'httpProxy': '127.0.0.1:4444',
        })

        capabilities = DesiredCapabilities().HTMLUNIT
        cls.selenium = WebDriver(desired_capabilities=capabilities, proxy=p)
        super(SeleniumTest, cls).setUpClass()

    @classmethod
    def tearDownClass(cls):
        cls.selenium.quit()
        super(SeleniumTest, cls).tearDownClass()

    def test_javascript_basket(self):
        self.selenium.get('http://localhost:8000')

我收到以下错误,包含在追溯中:

WebDriverException:消息:u’\ n \ n \ n错误:无法检索到所请求的URL \ n \ n \ n \ n

\ n

所请求的网址无法检索

\ n \ n

\ n \ n \ n

尝试检索URL时遇到以下错误:a href =“ http:// localhost:4444 / wd / hub / session”
localhost:4444 / wd / hub / session ap \ n \ n \ n

与127.0.0.1的连接失败。

\ n

\ n \ n系统返回(111)连接被拒绝 \ n \ n

远程主机或网络可能已关闭。请重试该请求。

\ n \ n

您的缓存管理员是网站管理员。

\ n \ n
\ n \ n \ n

\ n \ n

由localhost(squid / 3.1.6)于2013年6月10日星期一格林尼治标准时间生成

\ n \ n \ n’

这是怎么回事?为什么从Jenkins测试连接到Selenium服务器无法正常工作?

python==2.7.3
Django==1.5
django-jenkins==0.14.0
selenium==2.33.0

更新: 如果我使用的是Firefox WebDriver而不是HTMLUNIT,则Firefox在行后打开

cls.selenium = WebDriver(desired_capabilities=capabilities, proxy=p)

,但稍后引发上述异常。

解决了, 我只是添加到setUpClass()方法:

import os
. . .
    def setUpClass(cls):
        os.environ['NO_PROXY'] = '127.0.0.1'

问题答案:

我以这种方式解决了问题(使用了 phantom-js 而不是 HTMLUNIT ,因为它是唯一剩余的稳定版本的代码)。

from django.test import LiveServerTestCase
from selenium import webdriver
from os import environ


class SeleniumTestCase(LiveServerTestCase):
    __test__ = False

    @classmethod
    def setUpClass(cls):
        environ['NO_PROXY'] = '127.0.0.1'  # The key point

        cls.selenium = webdriver.PhantomJS(service_args=['--proxy-type=none'])    
        super(SeleniumTestCase, cls).setUpClass()

    @classmethod
    def tearDownClass(cls):
        cls.selenium.close()
        cls.selenium.quit()
        super(SeleniumTestCase, cls).tearDownClass()


class TestFoo(SeleniumTestCase):    
    def setUp(self):
        # do something before every test method runs
        pass
    def test_foo(self):
        # test
        pass


 类似资料:
  • 授予codeBase“file:/home/rozerin/ideaprojects/computetest/src/main/java/”{permission java.security.allpermission;}; 堆栈跟踪是; ComputeEngine异常:java.security.AccessControllException:在java.security.AccessContr

  • 我正在处理一个Spring启动应用程序。我尝试处理异常。但我想我这样做的方式有问题,因为它总是抛出内部服务器错误500。 我尝试设置自定义异常类,并且还使用带有@响应状态的响应状态代码。但是不管异常是什么,它只会抛出内部服务器错误。我使用的是intellij,我在异常中给出的消息打印在那里,但响应正文empty.This我想一定是因为它抛出了内部服务器错误。 控制器类 intellij 中的终端打

  • 我已经安装了selenium IDE和selenium server(selenium RC)。。。当使用phpunit在命令提示符下运行测试用例时,会出现如下错误 访问位于“”的Selenium服务器时,响应无效http://localhost:4444/selenium-服务器/驱动程序/':30000ms后超时 我在selenium IDE选项超时属性中进行了更改,并且在启动服务器时 jav

  • 我有一个rest服务,它将抛出一个异常,我想知道什么将是最好的方式来处理这一点。 我想知道这是rest服务中处理异常的正确方式吗? 我在用泽西。

  • 我正在将本地netty服务器连接到远程https服务器以代理请求。 下面是我如何创建ssLcontext bean 当我点击我的本地主机时,它应该代理到后端。我得到以下异常。但是,如果SSL关闭并且我连接到远程,这是在不同端口上运行的本地服务器,则工作正常 编辑 添加的日志

  • 问题内容: 我在页面上有几个更新面板和jquery选项卡。另外,我正在更新面板上加载几个用户控件。用户等待几分钟后(未检查的时间约为40分钟)。当用户从“提交”按钮发送请求时,出现以下错误? 我无法解决此问题。但我相信。这是由Ajax引起的。大师,如果您知道解决方案。请告诉我。 问题答案: 当您有一个控件注册为多个更新面板中时,有时会出现此问题。 如果这不是问题,请尝试在脚本管理器声明之后立即添加