如何绕过此步骤并选择所需的值?
当我从“ profile_additional [field_gender] [und]”中选择“ male”时
/**
* @When /^I check the "([^"]*)" radio button$/
*/
public function iCheckTheRadioButton($labelText)
{
foreach ($this->getMainContext()->getSession()->getPage()->findAll('css', 'label') as $label) {
if ($labelText === $label->getText() && $label->has('css', 'input[type="radio"]')) {
$this->getMainContext()->fillField($label->find('css', 'input[type="radio"]')->getAttribute('name'), $label->find('css', 'input[type="radio"]')->getAttribute('value'));
return;
}
}
throw new \Exception('Radio button not found');
}
Drupal \ DrupalExtension \ Context \ MinkContext :: selectOption() 未知错误:元素在点(547,470)处不可单击。其他 元素将获得点击:... (会议信息:chrome = 74.0.3729.131) (驱动程序信息:chromedriver = 2.43.600210(68dcf5eebde37173d4027fa8635e332711d2874a),平台= Windows NT 10.0.17763 x86_64)(WebDriver \ Exception \ UnknownError)
答案 0 :(得分:0)
您尝试与之交互的元素隐藏在其他元素之下。您可以尝试使用Actions
首先移至您的元素,然后尝试与之交互。现在,我不是PHP
的专家,我认为这是您使用的语言,操作应如下所示:
$action = new WebDriverActions($this->driver);
$action->moveToElement($element)->click()->perform();
如果您知道是什么因素导致了此行为,那么也可以尝试等待其消失,通常通过等待style
属性包含none
来完成,如 display所示:没有
答案 1 :(得分:0)
更好地使用通过javascript执行程序滚动到Web元素
JavascriptExecutor jse =(javascriptExecutor)驱动程序; jse.executeScript(“ arguments [0] .scrollIntoView();” element)
这将解决您的问题