Php 贝哈特、水貂和硒。如何勾选复选框?
尝试使用Behat/Mink/Selenium选中复选框时出错。下面是我的设置和我的错误描述 behat.ymlPhp 贝哈特、水貂和硒。如何勾选复选框?,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
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衷心感谢您收到awesonemousemov绝
错误提示。所以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衷心感谢您收到awesonemousemov绝
错误提示。所以gecko驱动程序现在不支持mousemovoint
方法,firefox浏览器确实存在问题,您有两个变体:将behat、mink、minkcontext更新到主版本-在chrome浏览器中有一个修复程序或运行测试。抱歉,不是minkcontext,但需要更新MinkSelenium2Driver,这是最后一个修复版本,所以我先尝试了Chrome选项。我需要从gecko切换到chrome驱动,一切似乎都很顺利。但是,我收到了“您正在使用不受支持的命令行标志--忽略证书错误”错误消息。我找不到一个直截了当的方法。如果我能修复这个chrome错误的话