我是 Selenium 新手,我想知道当 HTML 标记中没有显示值时如何加载文本框的值:
<input type="text" name="qty" id="qty" maxlength="5" value="" title="Qty" class="quantity-input qty"
或者是从jscript获取数据?
<script type="text/javascript">
jQuery(document).on('click','.quantity-plus',function(){
var qty = jQuery.trim(jQuery('#qty').val());
if(qty < 99999)
{
var moq = jQuery('input[name=opinions]:checked').attr('data-moq');
var incrementquantity = jQuery('input[name=opinions]:checked').attr('data-incrementquantity');
var incrementmode = jQuery('input[name=opinions]:checked').attr('data-incrementmode');
var qty = jQuery.trim(jQuery('#qty').val());
jQuery('.moqerror').html('');
if(Number(qty) >= Number(moq) && parseInt((qty-moq)%incrementquantity) == 0)
{
var newqty = parseFloat( parseFloat(qty) + parseFloat(incrementquantity));
jQuery('#qty').val(newqty);
updateEstimatePrice();
}
最佳答案
来自脚本。 value
属性正在由 val() 设置
var newqty = parseFloat( parseFloat(qty) + parseFloat(incrementquantity));
jQuery('#qty').val(newqty);
我很困惑为什么你有'XPath ' 在问题的标题中,这让我觉得我误解了一些东西。
编辑:关于 Selenium 的问题:
所以这看起来有点开放式 - 但我只会告诉你我会如何做:
先决条件:
- Jasmine测试框架
- promises
- webdriverjs 的 control flow using promises
- Angular Protractor 如何 uses promises
假设您对此表示同意:
首先,用 Protractor 设置 Selenium(这是一项艰巨的任务),然后你可以这样做(未经测试):
describe("Checking selectall, ", function() {
it("exists,", function() {
var qty = element(By.css('input#qty'));
expect(browser.isElementPresent(qty)).toEqual(true);
it("clicks loads with a value", function() {
qty.getAttribute("value").then(function(data) {
return console.log("qty.value", data);
});
});
});
});
});
关于javascript - 来自 JScript 的 Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239732/