我提前道歉,但我是初学者。 我尝试检查没有ID或名称的复选框。
/**
* getMurmur128Hash.
*
* @param content
* @return HashCode
*/
public static HashCode getMurmur128Hash(String content) {
final HashFunction hf = Hashing.murmur3_128();
final HashCode hc = hf.newHasher().putString(content, Charsets.UTF_8).hash();
return hc;
}
/**
* getAbsMurmur128HashAsLongVal.
*
* @param content
* @return Long Absolute value of Long for the HashCode.
*/
public static Long getAbsMurmur128HashAsLongVal(String content) {
return Math.abs(getMurmur128Hash(content).asLong());
}

我弄清楚如何用selenium2driver做到这一点。所以我使用函数" find"像这样:
<span class="ps-align-left">
<input type="checkbox" value="43899" style="background-color: rgb(252, 252, 252);"/>
43899
</span>
它工作正常,但当我尝试使用无头浏览器Goutte运行测试时,我收到错误:
public function checkOption()
{
$this->getSession()->getPage()->find('css', '.ps-align-left>input')->check();
}
谁能知道原因?我应该使用不同的功能吗?
答案 0 :(得分:0)
尝试使用click并在未找到元素的情况下添加Exception。
实施例: 如果找不到该元素,则find方法将返回null,并且您将尝试单击null,这将抛出致命异常,您的套件将停止。
如果添加例外,则仅当前方案将失败,套件将继续执行。
public function iClick($selector, $locator){
$node = $this->getSession()->getPage()->find($selector, $locator);
if($node === null){
throw new Exception("Element $locator not found!");
}else{
$node->click();
}
}
如果元素是类型复选框并且您想要进行检查,无论是否选中,您都可以创建一个使用check()而不是click()的方法
答案 1 :(得分:0)
您必须使用MinkContext的方法checkOption($option)
(在Behat / MinkExtension中,必须通过Composer安装)。
MinkContext默认安装在Behat环境中。
希望它能起作用。