我需要找到一个包含特定文本的元素。如果不对文本进行硬编码,我该怎么做呢?如何将文本变为变量并将其传递给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 。
答案 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+"')]"));
}