标签标签 - 危险,卡在这里

时间:2015-11-13 06:56:19

标签: selenium

我需要验证,用户名和&密码字段。密码或用户名不正确时。我想验证显示的错误消息

以下显示了HTML。 class显示label label-danger,但是如果我按类使用findelement它就不起作用,它会抛出一个没有元素的异常。

<div>
  <div class="form-group">
    <label for="password">Password</label>
    <input id="loginform-password" class="form-control" type="password" value="ssssssssssss" name="LoginForm[password]">
    <div class="clear"></div>
    <div class="label label-danger">Incorrect username or password.</div>
  </div>
  <input id="loginform-type" type="hidden" value="company"name="LoginForm[type]">
  <button class="nd-btn" type="submit">LOGIN</button>
</div>

这是我尝试但失败的原因:

driver.findElement(By.className("label label-danger")); 

driver.findElement(By.linkText("Incorrect username or password."));

Image

我的代码就是这个

WebDriver driver = new FirefoxDriver();
// To explicitly wait for 10 seconds
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Navigate to Required URL
driver.get("http://ndustrious.com/");
// Maximize the Window
driver.manage().window().maximize();
// To explicitly wait for 5 seconds
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// click on EXECEPTIONAL ORGANIZATIONS
driver.findElement(By.cssSelector("a[href*='/site/company-login']")).click();
    driver.findElement(By.id("loginform-username")).sendKeys("abc");
    driver.findElement(By.id("loginform-password")).clear();
    WebElement labelElement = driver.findElement(By.xpath("//div[@class = 'label label-danger']"));
    labelElement.getText();

4 个答案:

答案 0 :(得分:1)

By.className不适用于多个类属性,您需要使用xpath:

WebElement labelElement = driver.findElement(By.xpath("//div[@class = 'label label-danger']")); 

您的第二种方法也不起作用,因为该文字不是链接元素的文本,而是div的文本

如果你想打印文字:

labelElement.getText();

答案 1 :(得分:1)

如果要通过By.classname()映射获取WebElement,则只能传递一个类。最好通过

来调用它
driver.findElement(By.className("label-danger"));

答案 2 :(得分:0)

你能试试吗

driver.findElement(By.xpath(&#34; // DIV [含有(文本(),&#39;不正确&#39)]&#34);

答案 3 :(得分:0)

如果要在定位器中使用多个CSS类名,则需要使用CSS选择器。

driver.findElement(By.cssSelector("div.label.label-danger")).getText();