【问题标题】:Unable to Grab error message from website and print in Eclipse console using Selenium(java)无法使用 Selenium(java) 从网站获取错误消息并在 Eclipse 控制台中打印
【发布时间】:2020-03-29 14:24:59
【问题描述】:

我正在尝试在 SalesForce 网站上打印错误消息,原因是输入了错误的用户名和密码

package today;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Gmail {

public static void main(String[] args) {
 System.setProperty("webdriver.chrome.driver", "C:\\selenium\\chromedriver.exe");      WebDriver mail=new ChromeDriver();
mail.get("https://login.salesforce.com/?locale=in");


mail.findElement(By.cssSelector("#username")).sendKeys("judinkp@gmail.com");
mail.findElement(By.xpath("//*[@id=\"password\"]")).sendKeys("23232");

mail.findElement(By.id("Login")).click();

System.out.println(mail.findElement(By.xpath("//*[@id='error']")).getText());
    }
}

我的脚本一直运行到它点击Login,但网站中打印的错误消息没有打印在我的控制台中,我收到以下错误消息

Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class='loginError']"}
  (Session info: chrome=80.0.3987.149)

Xpath 是浏览器给定的 Xpath。

网站链接:https://login.salesforce.com/?locale=in

【问题讨论】:

    标签: java selenium xpath


    【解决方案1】:

    请尝试以下解决方案:

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    public class LoginScreen {
    
        public static void main(String[] args) {
    
            System.out.println("launching chrome browser");
            System.setProperty("webdriver.chrome.driver", "C:\\selenium\\chromedriver.exe");  
    
    
    
            WebDriver driver = new ChromeDriver();
            driver.manage().window().maximize();
    
            driver.navigate().to("https://login.salesforce.com/?locale=in");
            driver.get("https://login.salesforce.com/?locale=in");
            driver.findElement(By.cssSelector("#username")).sendKeys("judinkp@gmail.com");
            driver.findElement(By.id("password")).sendKeys("23232");
            driver.findElement(By.id("Login")).click();
            WebDriverWait wait = new WebDriverWait(driver,20);
            WebElement error= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("error")));  
            System.out.println(error.getText());
        }
    }
    

    【讨论】:

    • 我是 Coding 新手,能否请您发布完整程序
    • 太棒了!!您是否愿意从您的最后点击更新按钮。以便其他人也可以参考上述解决方案
    【解决方案2】:

    我在使用 CSS 和 Xpath 定位器时遇到了同样的问题。

    试试 System.out.println(mail.findElement(By.id("error")).getText());它应该在控制台中打印出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多