使用selenuim检测表单中的文本

时间:2016-11-16 12:37:27

标签: selenium testing selenium-webdriver webdriver automated-tests

您好我正在尝试使用selinuim web驱动程序编写一个java脚本,以验证用户在注册期间是否已存在。 当用户访问我的网站时,他点击“成为一个”home page of my site

然后他在“加入”sign up form

上填写表格和集团

如果邮件已经存在,则显示“电子邮件已存在”。Email Already exist

我的脚本成功完成了表单,但无法检测到“已存在电子邮件”消息

这是我试图检测的消息的HTML代码

<p name="already" style="color:Red;" class="ng-binding">Email Already exist</p>

这是我用来验证文本是否显示但始终显示我已检测到

的代码
     driver.findElement(By.cssSelector("span.ng-scope")).click();
    int v = 0,i=0;
    System.out.println("enter while");
       while(v==0){
   try{
     WebElement txtbox_username = driver.findElement(By.id("firstname"));
        if(txtbox_username.isDisplayed()){
            v=1;
            System.out.println("Complete the forme");}}
    catch(NoSuchElementException nsee){
    i++;
     System.out.println("Try number:"+i); }}  
     driver.findElement(By.id("firstname")).sendKeys("haha");
     driver.findElement(By.id("lastname")).sendKeys("haha");
     driver.findElement(By.name("email")).sendKeys("hah@ahla.com");
     driver.findElement(By.id("password")).sendKeys("yassiryakhlaf");
      driver.findElement(By.id("signmeup")).click();
      System.out.println(driver.findElement(By.id("firstname")).getText());  
      try {Boolean display =  driver.findElement(By.xpath("//p[@name='already']")).getText().equals("Email Already exist");
      if (display){System.out.println("detected");}
      else{System.out.println("not detected");}
      } catch (NoSuchElementException e) {System.out.println("nott detected");}

当我在这里尝试的是结果even message displayed it can t be detected by selinuim

2 个答案:

答案 0 :(得分:0)

这对我有用。

try {
            boolean boo = driver.findElement(By.xpath("//div[@id='MsgAfterSignup']/center/p")).isDisplayed()
                && driver.findElement(By.xpath("//div[@id='MsgAfterSignup']/center/p")).getText()
                        .equals("Email Already exist");
            if (boo){
            System.out.println("detected");
            }
            else{
                System.out.println("Not detected");
            }
        } catch (Exception e) {
            System.out.println("Not detected");
        }

答案 1 :(得分:0)

也许该元素总是存在,但是一些javascript会显示或隐藏元素(或父元素),具体取决于&#34;已存在&#34;的结果。检查。

也许尝试使用isDisplayed()方法?

isDisplayed() vs isVisible() in Selenium