首页 > 解决方案 > 无法使用 Selenium(java) 从网站获取错误消息并在 Eclipse 控制台中打印

问题描述

我正在尝试在 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

标签: javaseleniumxpath

解决方案


您能否尝试以下解决方案:

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());
    }
}

推荐阅读