【问题标题】:How can I avoid having multiple xpath variables in Selenium?如何避免在 Selenium 中有多个 xpath 变量?
【发布时间】:2020-01-24 11:56:17
【问题描述】:

我在 Selenium 中定义 2 个变量,如下所示:

@FindBy(xpath = "//span[contains(text(),'€11')]")
    private WebElement singleTicket;

@FindBy(xpath = "//span[contains(text(),'€19')]")
    private WebElement returnTicket;`

我需要在这些变量中为不同的测试传递不同的值,例如“$12”,但我不想在我的页面对象中创建更多具有不同价格的变量。有什么好的解决方案?

【问题讨论】:

    标签: selenium selenium-webdriver xpath webdriver findby


    【解决方案1】:

    没有办法将parameter 传递给@FindBy 注释。但是您也可以编写一个自定义函数来根据特定的valuetag 获取webelement。所以你不需要每次都创建单独的元素。请看下面的功能。

       public  WebElement getWebElementForSpecificText(String tagName, String text) {
            String formXpath= ".//"+tagName+"[contains(text(),'"+text+"')]";
            return driver.findElement(By.xpath(formXpath));
        }
    

    你可以如下调用这个函数:

    getWebElementForSpecificText("span", "€11");
    getWebElementForSpecificText("span", "€12");
    getWebElementForSpecificText("span", "€19");
    

    【讨论】:

      猜你喜欢
      • 2015-02-18
      • 2015-09-15
      • 1970-01-01
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多