【问题标题】:multilingual automation testing using selenium webdriver [closed]使用 selenium webdriver 进行多语言自动化测试 [关闭]
【发布时间】:2021-05-15 23:13:53
【问题描述】:

我正在开发支持多语言的自动化项目,这里的疑问是,我们有类似仪表板的页面或任何我们将有许多字符串和文本的页面,因此验证每个测试用例中的所有文本将非常冗长,所以什么是最好的方式或方法。 我也创建了属性文件,但仍然不知道如何一次验证多个字符串。 请帮我优化测试用例。

enter code here

{ 请帮忙 }

【问题讨论】:

    标签: java selenium-webdriver testng pom.xml properties-file


    【解决方案1】:

    一般的想法是为您的元素设置参数化定位器,这些定位器将根据所选语言采用不同的值(取自 i18n 文件)。

    您可以使用this lib,这样您就可以像这样为所有语言构建一个页面对象:

    import click.webelement.pagefactory.parameterized.FindByParameterized;
    import click.webelement.pagefactory.parameterized.PageObjectParameterized;
    import org.openqa.selenium.SearchContext;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.support.FindBy;
    
    public class MyPage extends PageObjectParameterized {
    
        @FindByParameterized(xpath = "//button[@name='{wec:btn.name}']")
        WebElement button;
    
        @FindByParameterized(xpath = "//label[text()='{wec:lbl.text}']")
        WebElement label;
    
        @FindBy(xpath = "//input")
        WebElement input;
        
        public MyPage(SearchContext searchContext) {
            super(searchContext);
        }
    }
    

    然后您的测试将如下所示:

    @DataProvider(name = "languages")
    Object[][] dataProvider(){
        return new Object[][]{
                {"en", "Press me", "Read me"},
                {"ru", "Нажми меня", "Прочти меня"}
        };
    }
    
    @Test(dataProvider = "languages")
    public void testPage(String language, String btnLocator, String labelLocator){
        driver.get(URL + "/" + language);
        DefaultParameterProvider
                .properties
                .set(Map.of("btn.name", btnLocator, "lbl.text", labelLocator));
        MyPage myPage = new MyPage(driver);
        myPage.button.click();
        myPage.label.getText();
    }
    

    还有an article,其中解释了上面实现的概念的一些细节,以便您可以以自己的方式实现它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 2015-10-30
      • 2017-01-05
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      相关资源
      最近更新 更多