在节点javascript中使用selenium-webdriver执行“命令”

我有兴趣通过JavaScript API https://code.google.com/p/selenium/source/browse/javascript/webdriver/command.js执行一些高级“命令”

如果我从基本代码开始:

var browser = new webdriver .Builder() .usingServer(server.address()) .withCapabilities(webdriver.Capabilities.phantomjs()) .build(); 

我尝试执行的每种“可能”语法都失败了。 例如:

 // does not work console.log(webdriver.Command('getWindowSize')) // does not work console.log(browser.Command('getWindowSize')) 

有谁知道如何执行“获取窗口大小”,或“设置窗口大小”在selenium JavaScript的WebDriver?

您可能正在寻找driver.executeScript。

例:

 var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.chrome()). build(); driver.executeScript('return 2').then(function(return_value) { console.log('returned ', return_value) }); 

这将logging2到控制台。

我也testing了这个:

 driver.get('http://underscorejs.org/'); driver.executeScript('return _').then(function(return_value) { console.log('returned ', return_value) }); 

…正确列出_上定义的所有方法,所以它似乎工作。

在我的npm软件包中,有一个文件node_modules/selenium-webdriver/test/execute_script_test.js其中有许多使用driver.executeScript例子(在它们定义的文件的最后execute executeScript的别名)。