我们如何将变量(字符串)传递给xpath包含函数?

时间:2015-12-17 10:07:13

标签: java selenium xpath

我需要找到一个包含特定文本的元素。如果不对文本进行硬编码,我该怎么做呢?如何将文本变为变量并将其传递给xpath函数?

public static void selectEvent(String eventName) { 

WebElement eventLink = Browser.instance.findElement(By.xpath("//td[2]/a[1][contains(text(), 'Birthday Party')]")); 
eventLink.click(); 
} 

此处不使用文本生日派对,而是使用已传递给方法的参数 eventName

2 个答案:

答案 0 :(得分:5)

如果您使用的是java,则声明一个返回特定元素的方法

public WebElement getElementByXpathContainsText(String xpath)
    {
    return webDriver.findElement(By.ByXPath(xpath));
    }

通过传递任何xpath作为参数来调用getElementByXpathContainsText()。

为您的代码尝试以下方式,

public static void selectEvent(String eventName) { 
WebElement eventLink = Browser.instance.findElement(By.xpath("//td[2]/a[1][contains(text(), '"+eventName+"')]")); eventLink.click(); 
}

答案 1 :(得分:0)

将此函数添加到您的类中,并调用相同的函数:

public WebElement findElementUsingText(String searchText)
{
    return driver.findElement(By.xpath("//*[contains(text(),'"+searchText+"')]"));
}