如何用硒识别特定文本?

时间:2015-08-17 11:25:23

标签: scala selenium selenium-webdriver

我创建了一个简短的程序,我可以自动点击网页上的某些链接,我想这样做是为了查找是否有错误500.

它看起来像这样:

 private def lookForError500 () = {

    println("starting to look for error 500")

    val link1: WebElement = driver.findElement(By.cssSelector("#sidebar > div > ul > li:nth-child(3) > a"))
    link1.click()

    val link2: WebElement = driver.findElement(By.cssSelector("#sidebar > div > ul > li:nth-child(3) > ul > li:nth-child(1) > a"))
    link2.click()

    val link3: WebElement = driver.findElement(By.cssSelector("#sidebar > div > ul > li:nth-child(3) > ul > li:nth-child(2) > a"))
    link3.click()

现在有时会出现错误500,当错误500页面出现在屏幕上时,有一个我可以识别的文字说“对不起,出了点问题"。

每次点击后如何查找此文字??

这就是在错误500页面上检查元素的样子:

enter image description here

4 个答案:

答案 0 :(得分:1)

您好您可以编写一个函数来验证500ERROR文本并在您单击的每个链接上调用它或根据您的需要尝试这个如果上面的其他答案应该工作,直到错误500文本正在改变位置您可以尝试这个

  public void Verify_Error(){
    String s=driver.getPageSource();
    if(s.contains("Error 500")){

    }else{

    }           
 }

答案 1 :(得分:0)

我建议使用xPath来识别在这种情况下保存错误编号为500的<strong class=error-number>元素。 这个xPath String可以做到这一点:

//strong[@class="error-number" and text()="500"]

在Selenium中,您可以使用By.xpath()方法使用xPath。

所有这一切看起来都像这样。

By.xpath("//strong[@class='error-number' and text()='500']")

答案 2 :(得分:0)

您可以通过xPath,css路径或id获取元素。 然后,您可以使用 getText()方法获取元素的文本。

val text = driver.findElement(By.xPath("/html/body/div/div/div/div/p/strong")).getText();

if(text.equals("500")){
    // something went wrong
}

答案 3 :(得分:0)

你可以通过这种方式检查特定元素是否存在:

//使用xpath调用函数

if(ifElementExistsByXpath(“// p [text()='SORRY,SOMETHING WENT WONG WRONG')]))

{

           //do some operation

}

否则

{

         //no error..proceed

}

public static boolean ifElementExistsByXpath(String elemXpath)

{

      int count=driver.findElements(By.xpath(elemXpath)).size();

      if(count ==0)

      {
            return false;

      }

      else

      {
            return true;

      }

}

U也可以使用类名而不是文本。