【问题标题】:Inheriting xpath string in Java using Selenium Webdriver and Cucumber使用 Selenium Webdriver 和 Cucumber 在 Java 中继承 xpath 字符串
【发布时间】:2017-11-11 06:36:40
【问题描述】:

我将这段代码作为练习 Cucumber、Xpath 和 Selenium 的程序的一部分:

@When("^I select Divany i Kresla from left vertical menu$")
        public void i_choose_Divany_i_Kresla_from_left_vertical_menu() {
            driver.findElement(By.xpath("//div[@class='top-left-menu']/ul/li/a")).click();
            driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        }

在每种情况下都非常重复,实际更改的所有内容都是我选择的数据(我可以将其移至 .feature 文件中的示例)和用于访问页面上元素的 xpath。有没有办法以某种方式将此步骤移至通用类并将其设置为继承类的 xpath?

【问题讨论】:

    标签: java selenium inheritance xpath cucumber


    【解决方案1】:

    您可以尝试以下步骤定义,并以子菜单名称作为输入并单击它。

    @When("^I select .* from left vertical menu$")
        public void i_choose_Divany_i_Kresla_from_left_vertical_menu(String menu) {
            driver.findElement(By.xpath("//div[@class='top-left-menu']/ul/li/a[text()="+menu+"]")).click();
            driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        }
    

    【讨论】:

    • 然而,更好的办法是将页面对象与 Cucumber 一起使用。不要使用硬编码标识符。将它们放入变量或使用 PageFactory。否则,如果应用程序将来发生一些变化,这可能是维护的噩梦。
    猜你喜欢
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多