当使用selenium 3 webdriverjs提交空输入时,我需要一个很好的方法来验证强制表单字段的错误图标。
如果必填字段留空,则下面是抛出错误时DOM跟踪的一部分&表格已提交。
<div class="col-md-8 col-sm-8 col-xs-8 " style="display: inherit;">
<div class="vx_floatingLabel_complex vx_floatingLabel_active vx_has-
error-with-message ">
<label for="testerAccountData_phone">Telefone</label><div
class="vx_form-control" data-label-content="Telefonnummer" style="">
<input type="tel" maxlength="20" value="" autocomplete="off"
name="/testerAccountData/phoneNumber" id="testerAccountData_phone">
</div><span class="vx_form-control-error-icon icon icon-small icon-
critical-small"></span><span></span><span></span></div></div>
我正在考虑验证表单中的多个字段,
问:如何使用selenium检查字段是否显示错误图标。我不确定我是否可以使用getAttribute函数,因为错误图标似乎是CSS元素的一部分?
=&GT; class =&#34; vx_form-control-error-icon icon icon-small icon-critical-small&#34;&gt;
答案 0 :(得分:0)
确认可以选择元素后。 Selenium有element.isDisplayed()api,可以帮助你确定元素是否可见
//未经测试的代码:
driver.findElement(By.className('vx_form-control-error-icon')).isDisplayed();
答案 1 :(得分:0)
验证存在的css计算元素是否为:
<span class="vx_form-control-error-icon icon icon-small icon-critical-small">
您可以查看代表错误图标的 WebElement 的可见性,如下所示:
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='vx_floatingLabel_complex vx_floatingLabel_active vx_has-error-with-message ']//span[@class='vx_form-control-error-icon icon icon-small icon-critical-small']")))
期望检查页面的DOM上是否存在元素并且可见。可见性意味着元素不仅显示,而且高度和宽度也大于0. locator - 用于查找元素,一旦它被定位并可见,就会返回WebElement。
Java:
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='vx_floatingLabel_complex vx_floatingLabel_active vx_has-error-with-message ']//span[@class='vx_form-control-error-icon icon icon-small icon-critical-small']")));
期望检查页面的DOM上是否存在元素且可见。