如何验证文本框是否在页面上使用webdriver jmeter脚本可见?

时间:2016-10-13 04:06:10

标签: webdriver jmeter jmeter-plugins

测试场景:

如果存在capctha文本框(可见),则输入一些值。(注意: - 如果请求来自同一位置,您只能看到验证码文本框)

如果来自同一位置的请求,

captcha div仅显示。(直到然后验证码div甚至不存在于HTML代码中)

HTML代码: -



<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>

<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
<div class="captcha captcha-container clearfix" id="captcha"><div class="captcha-image"></div><div class="captcha-inputs clearfix"><div class="textInput captcha captcha-container" id="captchadiv"><div class="fieldWrapper"><label for="captchaCode" class="fieldLabel">Enter code</label><input id="captchaCode" name="captcha" type="text" class="hasHelp  validateEmpty  " value="" autocomplete="off" placeholder="Enter code"></div><div class="errorMessage" id="captchaErrorMessage"><p class="emptyError hide">Required</p></div></div><div class="refresh"><a href="" class="captchaRefresh buttonLight onboardingSpritePseudo scTrack:login-click-reload-captcha imageLink"></a></div></div></div>
</body>
</html>
&#13;
&#13;
&#13;

代码: - 我正在使用以下登录但未找到任何发现错误

var isEleDis = WDS.browser.findElement(pkg.By.id('captchaCode'))
if(isEleDis.isDisplayed()){
        isEleDis.click()
        isEleDis.sendKeys(['captcha'])
    }

错误: - 没有nightlementfound。 (因为id = captchacode还没有出现在html中)

1 个答案:

答案 0 :(得分:0)

WebDriver Sampler不提供JavaScript API,只是calls Selenium Java libraries methods from JavaScript language因此WebElement不是promise,而是Java WebElement因此您无法调用.then,需要重新设计你的方法,如:

var textField = WDS.browser.findElement(pkg.By.id('captCode'))

if (textField.isDisplayed()) {      
    textField.click()
    textField.sendKeys(['hello'])        
}

更多信息: