元素不可点击。其他元素将获得点击

时间:2019-05-08 07:08:53

标签: selenium selenium-webdriver drupal behat

如何绕过此步骤并选择所需的值?

behat#selenium2#drupal7

当我从“ 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)

2 个答案:

答案 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)

这将解决您的问题