Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 贝哈特、水貂和硒。如何勾选复选框?_Php_Selenium Webdriver_Behat_Mink - Fatal编程技术网

Php 贝哈特、水貂和硒。如何勾选复选框?

Php 贝哈特、水貂和硒。如何勾选复选框?,php,selenium-webdriver,behat,mink,Php,Selenium Webdriver,Behat,Mink,尝试使用Behat/Mink/Selenium选中复选框时出错。下面是我的设置和我的错误描述 behat.yml default: extensions: Behat\MinkExtension: goutte: ~ selenium2: ~ composer.json { "require": { "behat/behat": "~3.3", "behat/mink-extensi

尝试使用Behat/Mink/Selenium选中复选框时出错。下面是我的设置和我的错误描述

behat.yml

default:
    extensions:
        Behat\MinkExtension:
            goutte: ~
            selenium2: ~
composer.json

{
    "require": {
        "behat/behat": "~3.3",
        "behat/mink-extension": "~2.2",
        "behat/mink-goutte-driver": "~1.2",
        "behat/mink-selenium2-driver": "~1.3"
    },
    "config": {
        "bin-dir": "bin/"
    }
}

我像这样运行selenium 3.4.0(包括gecko驱动程序)

功能上下文类:

<?php

use Behat\MinkExtension\Context\MinkContext;
use Behat\Behat\Tester\Exception\PendingException;

/**
 * Defines application features from the specific context.
 */
class FeatureContext extends MinkContext
{
}

?>
错误
这是显示mousemovive错误的测试输出

ubuntu@ip-172-31-7-6:~/behat-tests$ bin/behat
Feature: Search
  In order to use behat
    As a tester
    I need to be able to get all these componets to work!

  @javascript
  Scenario: A very simple test of behat functionality                # features/simple-test.feature:7
    Given I am on "http://behat-testing.christaylordeveloper.co.uk/" # FeatureContext::visit()
    Then I should see "MY BLOG"                                      # FeatureContext::assertPageContainsText()
    And the "#slave-para" element should not contain "Hi there"      # FeatureContext::assertElementNotContains()
    When I check "test-cb"                                           # FeatureContext::checkOption()
      mouseMoveTo
      Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
      System info: host: 'ip-172-31-7-6', ip: '172.31.7.6', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-1018-aws', java.version: '1.8.0_131'
      Driver info: driver.version: RemoteWebDriver (WebDriver\Exception\UnknownCommand)
    Then the "#slave-para" element should contain "Hi there"         # FeatureContext::assertElementContains()

--- Failed scenarios:

    features/simple-test.feature:7

1 scenario (1 failed)
5 steps (3 passed, 1 failed, 1 skipped)
0m3.75s (10.46Mb)
如果我注释掉@javascript标记并注释掉场景的最后一步(涉及javascript),它就会顺利通过

如果没有这个mousemovive错误,我如何使用javascript进行测试

多谢各位

更新编号2:

<?php

use Behat\MinkExtension\Context\MinkContext;
use Behat\Behat\Tester\Exception\PendingException;

/**
 * Defines application features from the specific context.
 */
class FeatureContext extends MinkContext
{
}

?>
我现在使用chromedriver版本2.32和selenium独立服务器3.5.3实现了这一点

我从命令行运行服务器,如下所示:

java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-3.5.3.jar
"require": {
    "behat/behat": "v3.3.1",
    "behat/mink": "v1.7.1",
    "behat/mink-extension": "v2.2",
    "behat/mink-selenium2-driver": "dev-master",
我的行为是

default:
    extensions:
        Behat\MinkExtension:
            goutte: ~
            selenium2: ~
            browser_name: 'chrome' 

用于检查checbox的MinkContext已经有预定义的方法,例如
checkOption(optionName)
uncheckOption(optionName)
文件说:

  • 选中具有指定id | name | label |值的复选框
    • 示例:当我检查“珍珠项链”时
    • 我查了一下“珍珠项链”
由于此方法在中,您可以从
功能文件中使用它,如:

When I check "accept_checkbox"
或者在
FeatureContext.php
文件中

$this->checkOption('optionIdentifier')

链接有很多预定义的方法,请查看它们

检查checbox MinkContext的已经有预定义的方法,例如
检查选项(optionName)
取消选中选项(optionName)
文件说:

  • 选中具有指定id | name | label |值的复选框
    • 示例:当我检查“珍珠项链”时
    • 我查了一下“珍珠项链”
由于此方法在中,您可以从
功能文件中使用它,如:

When I check "accept_checkbox"
或者在
FeatureContext.php
文件中

$this->checkOption('optionIdentifier')

链接有很多预定义的方法,请查看它们

因此,在更新问题之后,问题就清楚了
mousemovive
错误是使用
selenium3
时众所周知的问题。此错误仅适用于带有
gecko
驱动程序的
firefox
浏览器。要解决此问题,您可以使用chrome或更新
MinkSelenium2Driver
库。应该是
MinkSelenium2Driver
master
分支,它需要
behat/mink:~1。7@dev
。这就是问题的症结所在 因此,如果您可以使用所有最新的behat版本,那么composer.json可能如下所示:

java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-3.5.3.jar
"require": {
    "behat/behat": "v3.3.1",
    "behat/mink": "v1.7.1",
    "behat/mink-extension": "v2.2",
    "behat/mink-selenium2-driver": "dev-master",

}

因此,在更新问题之后,问题就变得很清楚了
mousemovive
错误是使用
selenium3
时众所周知的问题。此错误仅适用于带有
gecko
驱动程序的
firefox
浏览器。要解决此问题,您可以使用chrome或更新
MinkSelenium2Driver
库。应该是
MinkSelenium2Driver
master
分支,它需要
behat/mink:~1。7@dev
。这就是问题的症结所在 因此,如果您可以使用所有最新的behat版本,那么composer.json可能如下所示:

java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-3.5.3.jar
"require": {
    "behat/behat": "v3.3.1",
    "behat/mink": "v1.7.1",
    "behat/mink-extension": "v2.2",
    "behat/mink-selenium2-driver": "dev-master",

}

谢谢你,伊戈尔。我已经对我的原始问题进行了编辑。我感觉我的feature context类缺少一些基本的
use
语句,因为当我选中“cb_id”
时,我不能使用基本的预定义方法,比如
,或者当我遵循“link”
时,甚至不能使用
之类的方法。也许我遗漏了什么?@CTaylorGuitar奇怪,因为所有的库都准备好了,你能用
behat-dl
运行behat吗。如果您尝试在featureContext中的方法中调用
$this->checkOption('optionIdentifier')
,您会得到什么类型的错误?我已经再次编辑了原始问题,现在我的情况和错误解释更清楚了,我希望。关于如何选中selenium复选框的任何建议,selenium衷心感谢您收到awesone
mousemov绝
错误提示。所以gecko驱动程序现在不支持
mousemovoint
方法,firefox浏览器确实存在问题,您有两个变体:将behat、mink、minkcontext更新到主版本-在chrome浏览器中有一个修复程序或运行测试。抱歉,不是minkcontext,但需要更新MinkSelenium2Driver,这是最后一个版本的修复谢谢你,伊戈尔。我已经对我的原始问题进行了编辑。我感觉我的feature context类缺少一些基本的
use
语句,因为当我选中“cb_id”
时,我不能使用基本的预定义方法,比如
,或者当我遵循“link”
时,甚至不能使用
之类的方法。也许我遗漏了什么?@CTaylorGuitar奇怪,因为所有的库都准备好了,你能用
behat-dl
运行behat吗。如果您尝试在featureContext中的方法中调用
$this->checkOption('optionIdentifier')
,您会得到什么类型的错误?我已经再次编辑了原始问题,现在我的情况和错误解释更清楚了,我希望。关于如何选中selenium复选框的任何建议,selenium衷心感谢您收到awesone
mousemov绝
错误提示。所以gecko驱动程序现在不支持
mousemovoint
方法,firefox浏览器确实存在问题,您有两个变体:将behat、mink、minkcontext更新到主版本-在chrome浏览器中有一个修复程序或运行测试。抱歉,不是minkcontext,但需要更新MinkSelenium2Driver,这是最后一个修复版本,所以我先尝试了Chrome选项。我需要从gecko切换到chrome驱动,一切似乎都很顺利。但是,我收到了“您正在使用不受支持的命令行标志--忽略证书错误”错误消息。我找不到一个直截了当的方法。如果我能修复这个chrome错误的话