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