Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Behat/Selenium-元素对测试框架可见,但不可见_Selenium_Testing_Cucumber_Behat_Gherkin - Fatal编程技术网

Behat/Selenium-元素对测试框架可见,但不可见

Behat/Selenium-元素对测试框架可见,但不可见,selenium,testing,cucumber,behat,gherkin,Selenium,Testing,Cucumber,Behat,Gherkin,我不确定这是Behat还是Selenium问题,但在谷歌的账户页面上,用户可以管理和删除连接到账户的应用程序——我不能用Behat删除一个,因为它认为确认删除的对话框中的元素是不可见的 页面如下: 如果您有任何连接到您的google帐户应用程序(如Quora或任何其他应用程序)的链接,请单击删除,您将看到确认对话框,其中有按钮确定,我可以使用Behat选择此元素,但$el->isVisible()返回false 不知道该怎么办。有什么想法吗 确定不是按钮,而是: <content clas

我不确定这是Behat还是Selenium问题,但在谷歌的账户页面上,用户可以管理和删除连接到账户的应用程序——我不能用Behat删除一个,因为它认为确认删除的对话框中的元素是不可见的

页面如下:

如果您有任何连接到您的google帐户应用程序(如Quora或任何其他应用程序)的链接,请单击
删除
,您将看到确认对话框,其中有按钮
确定
,我可以使用Behat选择此元素,但
$el->isVisible()
返回
false

不知道该怎么办。有什么想法吗


确定不是按钮,而是:

<content class="Nb"><span>OK</span></content>
OK
因此,您不能使用“按“确定”来选择它。如果您有合适的选择器,您可以等待按钮出现(I gue),或使用:

$this->getSession()->等待($time,”);
在上下文类中


希望这有帮助。

确定不是按钮,而是:

<content class="Nb"><span>OK</span></content>
OK
因此,您不能使用“按“确定”来选择它。如果您有合适的选择器,您可以等待按钮出现(I gue),或使用:

$this->getSession()->等待($time,”);
在上下文类中


希望这能有所帮助。

无法说明它为什么不可见,但您可以继续使用
JavaScript
单击它,如下所示:

    $cssSelector = "div[role='dialog'] div[role='button'][autofocus] SPAN";

    $js  = 'var event = document.createEvent("HTMLEvents");';
    $js .= 'var element = document.querySelectorAll("'.$cssSelector.'")[0];';
    $js .= 'event.initEvent("click", true, true);';
    $js .= 'event.eventName = "click";';
    $js .= 'element.dispatchEvent(event);';

    $this->getSession()->executeScript($js);

无法说明它为什么不可见,但您可以继续使用
JavaScript
单击它,如下所示:

    $cssSelector = "div[role='dialog'] div[role='button'][autofocus] SPAN";

    $js  = 'var event = document.createEvent("HTMLEvents");';
    $js .= 'var element = document.querySelectorAll("'.$cssSelector.'")[0];';
    $js .= 'event.initEvent("click", true, true);';
    $js .= 'event.eventName = "click";';
    $js .= 'element.dispatchEvent(event);';

    $this->getSession()->executeScript($js);