当前位置: 首页 > 知识库问答 >
问题:

Behat/Mink/Selenium测试中断(macOS)

马安邦
2023-03-14

我使用Selenium进行自动浏览器测试已经有相当一段时间了。除了Firefox,我从来没有想过如何让它在其他任何东西上运行。好吧,现在FireFox将启动,但不会被拉到前面,它只是坐在那里,什么也不做。我觉得这是因为FireFox更新了自己。

我在运行MacOS塞拉。我已经安装并启用了WebDriver 2.48扩展到Safari。

我已经下载并尝试了selenium-server-standalone-2.53.1.jar和selenium-server-standalone-3.0.0-beta4.jar,但我得到了不同的结果。在2.53.1和火狐49中,它启动了火狐,但如前所述,它只是坐在那里,什么也不做,甚至没有加载网址。最终它会超时,出现以下错误:

无法打开连接:45000 ms后无法连接到端口7055上的主机127.0.0.1。火狐控制台输出: 08198ce6fd}","syncGUID":"mT5F_TRS51sP","位置":"app-global","版本":"49.0.1","类型":"主题","内部名称":"经典/1.0","更新URL": null,"更新密钥": null,"optionsURL": null,"optionsType": null,"aboutURL": null,"图标":{"32":"icon.png","48":"icon.png"},"iconURL": null,"icon64URL": null,"defaultLocale":{"name":"Default","description":"默认主题.","creator":"Mozilla","homepageURL": null,"贡献者":["Mozilla贡献者"]},"可见": true,"active": true,"用户禁用:false,应用禁用:false,描述符:/应用程序/Firefox.app/Contents/Resources/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}. xpi,安装日期:1475253044000,更新日期:1475253044000,应用背景更新:1,可换肤:true,大小:7140,源URI:null,发布备注URI:null,软禁用:false,外国人安装:false,hasBinaryComponents": false,"严格兼容性": true,"locales":[],"塔吉特应用程序":[{"id":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","minVersion":"49.0.1","maxVersion":"49.0.1"}],"塔吉特平台":[],"看到": true} 1475260611275addons.xpiDEBUG getModTime:{972ce4c6-的递归扫描7e08-4474-a285-3208198ce6fd} 1475260611276延迟ave.extensions.jsonDEBUG保存更改1475260611277addons.xpiDEBUG通过更改已安装的加载项更新数据库1475260611277addons.xpi-utils DEBUG更新加载项状态1475260611277addons.xpi-utils DEBUG写作加载项列表1475260611279addons.xpiDEBUG注册清单 /Applications/Firefox.app/Contents/Resources/browser/features/e10srollout@mozilla.org.xpi1475260611279addons.xpiDEBUG调用引导方法启动e10srollout@mozilla.org版本1.2 1475260611279addons.xpiDEBUG/Applications/Firefox.app/Contents/Resources/browser/features/firefox@getpocket.com.xpi注册清单1475260611280 addons. xpi DEBUG调用引导方法启动firefox@getpocket.com版本1.0.4 1475260611280 addons. xpi DEBUG /Applications/Firefox.app/Contents/Resources/browser/features/webcompat@mozilla.org.xpi注册清单1475260611281 addons. xpi DEBUG调用引导方法启动在webcompat@mozilla.org版本1.0 1475260611284插件。管理器DEBUG为XPI提供商1475260611284插件注册关机拦截器。管理器DEBUG提供商完成启动: XPI提供商1475260611284插件。管理器DEBUG启动提供商:轻量级主题管理器1475260611284插件。管理器DEBUG为轻量级主题管理器1475260611285插件注册关机拦截器。管理器DEBUG提供商完成启动:轻量级主题管理器1475260611285 addons. Manager DEBUG启动提供商:GMP提供商1475260611294 addons. Manager DEBUG为GMP提供商1475260611294 addons注册关闭拦截器。管理器DEBUG提供商完成启动:GMP提供商1475260611294 addons. Manager DEBUG启动提供商:插件提供商1475260611295 addons. Manager DEBUG为插件提供商1475260611295 addons注册关闭拦截器。管理器DEBUG提供商完成启动:插件提供商1475260611295 addons. Manager DEBUG完成启动序列1475260611717 addons. Manager DEBUG启动提供程序: 1475260611717 addons. Manager DEBUG注册1475260611718 addons的关闭拦截器。管理器DEBUG提供程序完成启动: 1475260611721 DeferredSaves.扩展名. json DEBUG开始写入1475260611881 addons. repository DEBUG没有找到addons. json。1475260611881 DeferredSave. addons. json DEBUG保存更改1475260611884 DeferredSave. addons. json DEBUG启动定时器1475260611917 addons. Manager DEBUG启动提供商:Previous实验提供商1475260611918 addons. Manager DEBUG为Previous实验提供商1475260611919 addons注册关机拦截器。管理器DEBUG提供商完成启动:Previous实验提供商1475260611924 DeferredSave.扩展名。json DEBUG写入成功1475260611924 addons. xpi-utils DEBUG XPI数据库保存,将模式版本首选项设置为171475260611942 DeferredSave. addons. json DEBUG开始写入1475260611957 DeferredSave. addons. json DEBUG写入成功(Behat\Mink\Exc0019\DriverExc0019)

对于3.0.0-beta-4,它甚至没有启动火狐,它只是抛出以下错误:

无法打开连接:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;有关详细信息,请参阅https://github.com/mozilla/geckodriver.最新版本可从https://github.com/mozilla/geckodriver/releases(Behat\Mink\Exc0019\DriverExc0019)下载

如果我切换我的行为。ymlconfig以使用Safari(browser\u name:Safari),在2.53.1版本中,它会启动一个Safari实例,该实例也不会出现在前面或执行任何操作(如Firefox),我得到以下错误:

未知命令:{“id”:“f3xi7h2t2u16”,“name”:“mousemovoint”,“parameters”:{“element”::wdc:1475260954832”}(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时时间:5毫秒生成信息:版本:'2.53.1',版本:'a36b8b1',时间:'2016-06-30 17:37:03'系统信息:主机:'flightbyte。本地,ip:'127.0.0.1',操作系统。名称:'MacOSX',操作系统。拱门:“x86_64”,操作系统。版本:“10.12”,java。版本:“1.8.0_101”驱动程序信息:org。openqa。硒。游猎。SafariDriver功能[{browserName=safari,takesScreenshot=true,javascriptEnabled=true,version=10.0,cssSelectorsEnabled=true,platform=MAC,secureSsl=true}]会话ID:null(WebDriver\Exception\UnknownError)

用3.0.0-beta4我得到。。。

无法打开连接:空(警告:服务器没有提供任何堆栈跟踪信息)命令持续时间或超时:0毫秒构建信息:版本:'3.0.0-beta4',修订:'3169782',时间:'2016-09-29 10:29:23 -0700'系统信息:主机:'myapp.local',ip:'127.0.0.1',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.12',java.version:'1.8.0_101'驱动程序信息:driver.version: SafariDriver(Behat\Mink\Exc0019\DriverExc0019)

在上述所有情况下,我只需打开独立服务器。jar文件,然后像往常一样运行我的行为测试。今天我想我知道了如何让chomedriver工作,所以当我尝试将它与chrome一起使用时,我用这种方式启动它。。。

java -jar -Dwebdriver.chrome.driver='/Users/me/bin/selenium/drivers/chromedriver' /Users/me/bin/selenium/selenium-server-standalone-2.53.1.jar

... 我在我的行为中更改浏览器的名称键。ymlgooglechrome。当我以这种方式运行它时,我得到以下错误。。。

无法打开连接:最佳匹配的驱动程序提供程序组织。openqa。硒。游猎。SafariDriver无法为功能创建新的驱动程序实例[{browser=firefox,name=Behat功能套件,browserName=googlechrome,ignorezoomset=false,tags=[myapp.local,PHP 7.0.10]}]构建信息:版本:'2.53.1',版本:'a36b8b1',时间:'2016-06-30 17:37:03'系统信息:主机:'myapp。本地,ip:'127.0.0.1',操作系统。名称:'MacOSX',操作系统。拱门:“x86_64”,操作系统。版本:“10.12”,java。版本:“1.8.0_101”驱动程序信息:驱动程序。版本:未知(Behat\Mink\Exception\DriverException)

用3.0.0-beta4,我得到了这个:

无法打开连接:最佳匹配的驱动程序提供程序org.openqa.selenium.safari.SafariDriver无法为功能创建新的驱动程序实例[{浏览器=火狐,名称=Behat功能套件,浏览器名称=googlechrome,忽略设置=false,标签=[flightbyte.local,PHP 7.0.10]}]构建信息:版本:'3.0.0-beta4',版本:'3169782',时间:'2016-09-29 10:29:23 -0700'系统信息:主机:'flightbyte.local',IP:'127.0.0.1',os.name:'Mac OS X',os.arch:'x86_64,os.version:'10.12',java.version:'1.8.0_101'驱动程序信息:driver.version:未知(Behat\Mink\异常\DriverExcture)

我的行为。yml是这样开始的:

default:
  extensions:
    Laracasts\Behat:
      env_path: .env.testing
    Behat\MinkExtension:
      default_session: laravel
      base_url: http://myapp.local:8080/
      browser_name: googlechrome (this is where I switch browsers)
      laravel: ~
      selenium2: ~

我的作曲家。json包含以下内容:

"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.4",
    "phpspec/phpspec": "~2.1",
    "behat/behat": "^3.2",
    "behat/mink": "^1.7",
    "behat/mink-extension": "^2.2",
    "laracasts/behat-laravel-extension": "dev-master",
    "behat/mink-selenium2-driver": "^1.3@dev",
    "symfony/dom-crawler": "~3.0",
    "symfony/css-selector": "~3.0"
  },

我确实试着将behat和mink的版本调整到我在packagist上看到的版本,然后是composer更新。

我只需要让这些测试重新开始。我真的不在乎它是哪一款浏览器,我更希望它不是Firefox,但这是我一直以来的习惯,直到它完全崩溃。

任何帮助将不胜感激!


共有2个答案

江奕
2023-03-14

Selenium不再适用于没有驱动程序的firefox。由于Firefox47,您需要下载木偶/geckodriver,以便运行selenium自动化测试。

如果您需要在Selenium 2.53中运行Chrome和Firefox(直到v46)。X(您不需要运行geckodriver):

java -jar selenium-server-standalone-2.53.1.jar -role node -host XXX.XXX.XXX.XXX -hub http://XXX.XXX.XXX.XXX:4444/grid/register -nodeTimeout 1200 maxSession 4 -browser browserName=chrome,maxInstances=4,platform=WINDOWS, -Dwebdriver.chrome.driver=chromedriver.exe -browser browserName=firefox,maxInstances=4,platform=WINDOWS

铬合金的帽子

Behat\MinkExtension:
        base_url: "https://www.yourpage.com"
        sessions:
            chrome_mac:
                selenium2:
                    browser: "chrome"
                    wd_host: http://XXX.XXX.XXX.XXX:4444/wd/hub
                    capabilities:
                        platform: MAC
                        browser: chrome
                        version: ""

以及firefox的behat

Behat\MinkExtension:
        base_url: "https://www.yourpage.com"
        sessions:
            firefox_mac:
                selenium2:
                    browser: "firefox"
                    wd_host: http://XXX.XXX.XXX.XXX:4444/wd/hub
                    capabilities: { "platform": "MAC", "browser": "firefox", "version": "" }

如果你需要运行Chrome和Firefox(在v47之后),你需要Selenium 3-betaN(你需要运行gecko驱动程序):https://github.com/mozilla/geckodriver/releases

java -Dwebdriver.chrome.driver=chromedriver.exe -Dwebdriver.gecko.driver=geckodriver.exe -jar selenium-server-standalone-3.0.0-beta4.jar
微生毅
2023-03-14

试试铬驱动,从我的经验来看,它工作得更好。

将chromedriver和selenium服务器添加到同一文件夹中,并使用以下命令启动selenium:

java-Dwebdriver.chrome.driver的server_file

behat中。ymlchrome设置为浏览器名称。

 类似资料:
  • 我正在尝试安装behat+mink(在kohana框架上,而不是symfony,我将behat放入modules文件夹--我写这个只是以防万一,但我猜这不是导致我的问题的原因)。 我拥有与behat文档中相同的search.feature文件,我将features/bootstrap类更改为: 当我在CLI中键入“Behat”时,我会得到以下错误:在第80行调用....RawminkContext

  • 我想知道是否有一种可能的方法来解析动态值,特别是通过使用behat/mink测试来解析,因为它正在运行具有Selenium2功能的Yml配置文件 文件使用扩展文件,文件中包含Selenium 2 Capabilities参数。 在中:https://github.com/behat/minkextension/blob/2.0/src/behat/minkextension/extension.p

  • 当我尝试执行一个新的单元测试用例时,它会显示以下错误。 注意:我没有特权设置路径,因为我已经将chrome web驱动程序放在D驱动器中。 测试在14:56开始。。。C:\Users\xxx.xxxx\PyCharm项目\Automation\venv\Scripts\python.exe“C:\Users\xx.xxx\AppData\Local\JetBrains\PyCharm社区版2019

  • 情况是这样的:我正在使用Behat在Symfony上运行验收测试。为此,我使用Geckodriver启动一个Selenium实例,然后运行Behat。本地的一切都很好(很好!)。 但是当它在Github操作上运行时,它会失败。我已经检查了版本,我甚至版本化了gecko驱动程序和selenium.jar文件来使用完全相同的(尽管它们已经存在于github操作上),但是没有什么工作。 所以我正在寻找任

  • Mink 是开源的 PHP 浏览器/控制器 模拟测试工具。Mink 可以模拟 Web 应用和浏览器之间的交互,测试 Web 应用的行为是否正确。 <?phpuse Behat\Mink\Mink,    Behat\Mink\Session,    Behat\Mink\Driver\GoutteDriver,    Behat\Mink\Driver\Goutte\Client as Goutt

  • 我想使用我的selenium2网格在几个浏览器上运行我的behat测试。我已经设法使它们以不同的behat.yml配置文件在每个环境/浏览器的基础上运行,但我希望配置一个behat配置文件来触发在我的所有节点上的运行。 我的behat.yml配置文件如下所示: 浏览器字段中的数组,config parser不喜欢 具有多个名称的字符串,认为我有一个以字符串sigh命名的浏览器 为我的seleniu