使用PhantomJS的Selenium webdriver无法完全执行命令/单击

时间:2013-10-15 14:18:13

标签: .net selenium selenium-webdriver ghostdriver

在使用含有PhantomJS的selenium webdriver时,我遇到了一些问题。

我得到的印象是页面本身没有执行不同的操作。如果我尝试运行更改页面上的元素并且测试完全没有任何错误的情况,然后在常规浏览器中打开页面,则编辑的元素似乎没有更改。

1 个答案:

答案 0 :(得分:0)

验证应该由操作触发的方法是否确实未执行。你可以这样做:

首先,重写方法以“注入”一些将由操作触发的标志(它是Scala代码,但你应该明白这一点):

val js: JavascriptExecutor = webDriver.asInstanceOf[JavascriptExecutor]
js.executeScript(myScript)

  lazy val myScript: String = {
    s"""
      window.openNewWindowFlag = false;

      SDK.openNewWindowFlag = function(url, width, height, onClose) {
        openNewWindowFlag = true;
      };
      """
  }

注意,我们在全局(窗口)范围内添加了标记。 然后,运行应调用某个方法的操作(我们覆盖的方法)并检查标志是否更改:

val js: JavascriptExecutor = webDriver.asInstanceOf[JavascriptExecutor]
val isMethodTriggered = js.executeScript("return openNewWindowFlag").toString.toBoolean