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

Res*_*smi -3 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(); 
} 
Run Code Online (Sandbox Code Playgroud)

在这里,我不需要使用文本生日派对,而是需要使用已传递给方法的参数eventName.

Bha*_*Vre 5

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

public WebElement getElementByXpathContainsText(String xpath)
    {
    return webDriver.findElement(By.ByXPath(xpath));
    }
Run Code Online (Sandbox Code Playgroud)

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

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

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