javascript - 如何检查 <input> 元素中 "value"属性的值?

标签 javascript jquery selenium

我有以下内容:

<h1>Request Group Rate</h1> 
    <form>
        <input type="hidden" name="referrer" id="bmn">
            Name: 
        <input type="text" id="fieldName" name="name"><br> Group size: 
        <input type="text" name="groupSize"><br> 
        Email: <input type="email" name="email"><br>
        <input type="submit" value="Submit">
    </form>
    <script>
        $(document).ready(function(){
            $('input[name="referrer"]').val(document.referrer);
            $(document.body).append('<div id="ready"></div>');
        });
    </script>

使用 selenium 导航到页面后:

    driver.findElement(By.id('requestGroupRate')).click();
    driver.sleep(100);
    driver.wait(function(){
        return driver.findElement(By.id('ready')).then(function(){
                            driver.sleep(1000);

           var element =  driver.findElement(By.id('bmn'));
            console.log(element.value);
            assert(element.value === referrer);
            done();
        });
    },5000);

我的断言失败了。由于某种原因,element.value 未定义。这是为什么 ?那么我应该如何将输入字段中设置的值与 id“bmn”进行比较?显然应该设置该值,因为只有在设置该值后才会创建 id 为“ready”的 div,因此如果驱动程序可以找到“ready”,则应该设置输入字段的值。

我做错了什么?

最佳答案

var ele =  driver.findElement(By.id('bmn'));
ele.getAttribute('value').then(function(text){
  console.log('bmn value: ' + text);
  assert(text === 'change to your expected value');
});

关于javascript - 如何检查 &lt;input&gt; 元素中 "value"属性的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168047/

相关文章:

javascript - 为什么函数返回 true 或 false?

javascript - 一种制作实时画中画的方法

javascript - jQuery 选择两个且仅两个复选框

Jquery 向上滚动悬停停止

javascript - Angular 路由的基本解决

php - onclick 提交两个相同表单之一

javascript - 使用 jQuery 在控制台上转储值

java - 如何使用 Linux Shell 文件运行 TestNG

Selenium 3.0.1 Chrome 节点配置

selenium - 如何使用 selenium java 从多选下拉列表中显示所选选项?