Selenium用javascript获取元素的class属性

Lil*_*yan 5 javascript selenium node.js

我正在使用Selenium用Javascript编写测试自动化.尝试提取DOM元素的类属性对我来说不起作用.这是我的代码:

var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
            withCapabilities(webdriver.Capabilities.ie()).
            build();
var usernameField = driver.findElement(webdriver.By.id('username'));
var classes = usernameField.getAttribute('class');
console.log(classes);
Run Code Online (Sandbox Code Playgroud)

这打印出以下内容:

{ then: [Function: then],
cancel: [Function: cancel],
isPending: [Function: isPending] }
Run Code Online (Sandbox Code Playgroud)

请说明如何查找元素的属性值.

Lil*_*yan 5

发现问题,在分配任何值之前,console.log() 被异步触发。使用 then 语句强制它按顺序执行解决了问题。

var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
        withCapabilities(webdriver.Capabilities.ie()).
        build();
var usernameField = driver.findElement(webdriver.By.id('username'));
usernameField.getAttribute('class')
.then(function(classes){
    console.log(classes);
 });
Run Code Online (Sandbox Code Playgroud)