【问题标题】:First Selenium using Maven and Java,第一个使用 Maven 和 Java 的 Selenium,
【发布时间】:2015-04-26 16:34:13
【问题描述】:

我使用 Selenium Web 驱动程序、Maven 和 Java 编写了我的第一个代码。如果我直接正确并且是否可以改进此特定代码,有人可以提供专家意见。

public class myFirstTest {
    @Test
    public void startWebDriver(){
        WebDriver driver = new FirefoxDriver();
        driver.navigate().to("http://www.ft.com/home/uk");
        Assert.assertTrue("title should start with World Business", driver.getTitle().equals("World business, finance, and political news from the Financial Times - FT.com"));

        driver.findElement(By.id("ftLogin-signIn")).click();
        driver.findElement(By.xpath("/html/body/div[4]/div[2]/div[1]/div[2]/div[2]/div[3]/form/fieldset[1]/input")).sendKeys("xxx@mail.com");
        driver.findElement(By.id("ftLogin-password")).sendKeys("xxxxxxxx");
        driver.findElement(By.xpath("/html/body/div[4]/div[2]/div[1]/div[2]/div[2]/div[3]/form/fieldset[3]/p[1]/button")).submit();

        driver.quit();

    }
}

【问题讨论】:

    标签: java selenium webdriver


    【解决方案1】:

    根据您是在学习还是为您的公司创建测试框架,有一些建议。

    1. 您查找元素的函数和值不是最佳的。 cssSelector 或 id 是首选。

    ;

    By.cssSelector("input[id$='ftLogin-username']");
    

    By.id("ftLogin-username");
    

    如果没有绝对必要,切勿使用 xpath。尤其是那些依赖于 DOM 对象的。而是更改网页实现以在网页元素上设置 id。

    对于没有唯一类或 id 的按钮,我将使用文本代替

    driver.findElement(By.cssSelector("button:(*'Sign in'*)")); 
    
    1. 如果要在多个测试用例中使用此登录部分,请创建一个具有登录功能的辅助类。否则,您必须一遍又一遍地编写相同的代码。如果要更改的 id 或 xpath,您还必须更新所有使用该元素的测试用例。

    2. 在测试用例末尾添加断言,验证登录是否成功。

    【讨论】:

    • 所有非常有用的 cmets。非常感谢你花时间写作。谢谢。
    【解决方案2】:

    绝对可以改进您编写的代码。 考虑到您刚刚开始使用 WebDriver,以下是一些建议-

  • 避免使用如此长的 xpath 来定位元素。它有很多 对 DOM 的依赖。尽可能使用短 xpaths 或去 使用其他定位器。
  • 您可以从测试所需的文件中读取数据。(例如:用户名、密码)
  • 如果您使用任何单元测试框架(例如 JUnit、TestNG)来运行您的测试,您可以使用 @BeforeClass、@BeforeMethod 等注解。
  • 【讨论】:

    • 谢谢。所有非常有用的建议。
    • 一件事,看看我用 Firebug 写的那个 Xpath,你认为它可以手动写成更短的版本还是你的意思是使用不同的定位器?我必须学习如何访问文件以获取用户名和密码并记下您的注释点。再次感谢。
    • 恕我直言,如果您有其他可用的定位器,则根本不要使用 xpath。如果你没有其他选择(比如没有 id、class、name 等),那么只选择 xpaths。是的,您也可以编写更短的 xpath,具体取决于元素的各种属性的可用性。您可以在 firebug 中编写自己的 xpath 并检查其有效性。
    猜你喜欢
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多