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