如何避免在Selenium中使用多个xpath变量?
我在Selenium中定义了两个变量,如下所示:如何避免在Selenium中使用多个xpath变量?,selenium,selenium-webdriver,xpath,webdriver,findby,Selenium,Selenium Webdriver,Xpath,Webdriver,Findby,我在Selenium中定义了两个变量,如下所示: @FindBy(xpath = "//span[contains(text(),'€11')]") private WebElement singleTicket; @FindBy(xpath = "//span[contains(text(),'€19')]") private WebElement returnTicket;` 我需要为不同的测试传递这些变量中的不同值,例如“$12”,但我不想在我的页面对象中创建更多具有不
@FindBy(xpath = "//span[contains(text(),'€11')]")
private WebElement singleTicket;
@FindBy(xpath = "//span[contains(text(),'€19')]")
private WebElement returnTicket;`
我需要为不同的测试传递这些变量中的不同值,例如“$12”,但我不想在我的页面对象中创建更多具有不同价格的变量。什么是好的解决方案?无法将
参数
传递给@FindBy
注释。但是您也可以编写一个自定义函数,根据特定的值和标记来获取webelement
。所以您不需要每次都创建单独的元素。请看一下下面的函数
public WebElement getWebElementForSpecificText(String tagName, String text) {
String formXpath= ".//"+tagName+"[contains(text(),'"+text+"')]";
return driver.findElement(By.xpath(formXpath));
}
Yu可以调用此函数,如下所述:
getWebElementForSpecificText("span", "€11");
getWebElementForSpecificText("span", "€12");
getWebElementForSpecificText("span", "€19");