我有以下内容:
<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 - 如何检查 <input> 元素中 "value"属性的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168047/