javascript - 使用 Selenium WebDriver 对 JavaScript 变量进行断言

标签 javascript java selenium

我正在使用 Selenium WebDrive 测试网页,并想对 JavaScript 文件进行断言,但不确定如何做。

我想断言 servers(一个数组)的长度为 2。

我的 JavaScript 文件 config.js 包含我希望断言存在的以下数组:

var location = location || {};
location.Config = {
    servers: [
        {name: "a"}, 
        {name: "b"}
   ]
}

我的第一次尝试是使用 className 但没有成功:

Assert.assertThat(webDriver
        .findElement(className("config.js"))
        .getAttribute("servers")
        .length(), 
    Matchers.is(2));

最佳答案

成功!

向浏览器传递一个 JavaScript 命令来运行并捕获它的结果就成功了。

long servers = (long) ((JavascriptExecutor) webDriver).executeScript("return location.Config.servers.length");

Assert.assertThat(servers, Matchers.greaterThan((long) 0));

关于javascript - 使用 Selenium WebDriver 对 JavaScript 变量进行断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280426/

相关文章:

javascript - Selenium /VBA : clicking xpath using Javascript

javascript - Chart.js 折线图,具有正确间隔的 x 标签

javascript - Vuejs 计算属性 for 循环打印所有值,但仅返回一个值

java - GNUPlot 创建后立即消失

java - 从表中将所有单元格值作为字符串抓取

javascript - 如何通过selenium获取ExtJS combobox的选中值?

javascript - 为什么我的 v-for 循环没有给我 Vue.js 中的数据?

javascript - 使用 c3.js 将数据添加到图表

java - JRadioButton 转换为 boolean 值?

java - 使用现有表的 Hibernate 继承