使用Selenium验证表单字段的某些css计算元素的存在

时间:2018-02-12 19:06:36

标签: selenium xpath selenium-webdriver

当使用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;

2 个答案:

答案 0 :(得分:0)

确认可以选择元素后。 Selenium有element.isDisplayed()api,可以帮助你确定元素是否可见

http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_WebElement.html

https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/lib/webdriver.js#L2160

//未经测试的代码:

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 可见性,如下所示:

  • Python

    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上是否存在元素且可见。