如何使用 jasmine javascript 在 selenium webdriver 中获取 xpath 计数?

How can i get xpath count in selenium webdriver using jasmine javascript?

var sample1 = browser.findElements(driver.By.xpath('//somenode')).getXpathCount();
console.log( sample1.intValue() );

打印计数时出现错误:

error occuredTypeError: undefined is not a function

我认为您没有正确使用 getXpathCount()。你应该这样做:

browser.getXpathCount("//somenode");

如@alecxe 所述,getXpathCount() 的语法是browser.getXpathCount("//somenode")。

我看到你在 selenium git 上打开了一个问题并且那里有更多代码。此处未显示的是您只有以下内容。

var browser = require('selenium-webdriver');
var sample1 = browser.findElements(driver.By.xpath('//somenode')).getXpathCount();
console.log( sample1.intValue() );

我没有用过WebDriverJs,所以如果我错了请大家指正,但我认为你需要创建一个浏览器对象。现在您只创建了一个名为浏览器的驱动程序对象。

你能试试下面的代码片段吗?

var webdriver = require('selenium-webdriver');
var browser = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build();

browser.get('http://en.wikipedia.org/wiki/Wiki');
browser.getXpathCount('//*[@id="www-wikipedia-org"]/div[1]/div');

findElements 方法 returns 一个 Array promise,所以你必须这样做:

browser.findElements(driver.By.xpath('//somenode')).then(function(elements) {
  var count = elements.length;
  ...
})