Java 我已经写了一个程序来登录yahoomail。但这给了我一个错误

Java 我已经写了一个程序来登录yahoomail。但这给了我一个错误,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我已经写了一个程序,点击一个链接,输入用户名和密码,然后点击登录按钮,但我没有得到输出,它给了我一个错误。 程序如下所示 import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class CssSelector3 { public static void main(String[] ar

我已经写了一个程序,点击一个链接,输入用户名和密码,然后点击登录按钮,但我没有得到输出,它给了我一个错误。 程序如下所示

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class CssSelector3 {

    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.yahoo.com");
        driver.manage().window().maximize();

        driver.findElement(By.xpath("//*[@id='yui_3_12_0_1_1454585688215_223']/div/ul[1]/li[1]/a")).click();
        driver.findElement(By.cssSelector("#login-username")).sendKeys("tester@yahoo.com");
        driver.findElement(By.cssSelector("#login-passwd")).sendKeys("tester1234");
        driver.findElement(By.cssSelector("#login-signin")).click();
    }
}

程序只执行到最大化窗口部分,然后停止。有人能帮我吗。

在您的情况下,登录按钮的xpath错误。雅虎每次都会为其登录按钮生成新id。您可以尝试以下代码

public static void main(String[] args) {

        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.yahoo.com");
        driver.manage().window().maximize();

        driver.findElement(By.xpath("//*[text()='Sign In']"))
                .click();
        driver.findElement(By.cssSelector("#login-username"))
                .sendKeys("tester@yahoo.com");
        driver.findElement(By.cssSelector("#login-passwd")).sendKeys("tester1234");
        driver.findElement(By.cssSelector("#login-signin")).click();
    }

你能发日志吗?没拿到。。?登录??您遇到了什么类型的错误?无法定位元素:{“方法”:“xpath”,“选择器”:“/*[@id='yui_3_12_0_1_1454585688215_223;']/div/ul[1]/li[1]/a”},但您是如何获得此文本的“/*[text()='Sign']”在selenium中编写xpath是一门艺术。我们应该编写它,而不考虑任何浏览器,这样,如果用户界面发生变化,所需的维护就会减少。在selenium中,可以用多种方式编写Xpath。只需遵循以下不同的新策略即可。