繁体   English   中英

如何检查广​​告中“ value”属性的值 <input> 元件?

[英]How to check the value of the “value” attribute in an <input> element?

我有以下内容:

<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>

使用硒导航到页面后:

    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');
});

要获取属性的值,我们可以使用.getAttribute('Attribute Name')。

    driver.findElement(By.id('bmn')).getAttribute('value').then(function(attributeValue){
      console.log('bmn value: ' + attributeValue);
      assert(attributeValue=== 'expected value'); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM