Selenium Java - 列表元素包含无序列表中的部分文本

Selenium Java - list element contains partial text within unordered list

如何为

添加 'starts-with' 或 'contains'
(By.xpath("//ul/li[1]")));

类似于

(By.xpath("//ul/li[1][contains(text(),'"+textConstant+"')]")));  

这行不通

任何人都可以协助正确格式化吗?谢谢

如果只有一个 li 标签包含该文本,则无需提及索引。

你可以这样写:

By locator = By.xpath("//ul/li[contain‌​s(., '"+lostText+"')]");
WebElement errorFind = (new WebDriverWait(mypackage.ClassMain.driver, 15)).until(ExpectedConditions.presenceOfElementLocated(locator));
String text = mypackage.ClassMain.driver.findElement(By.xpath("//ul/li[1]")).getText(); 
if(text.equals("Lose") {
   doNext(); 
} else {
   System.out.print("Win \n"); 
   doOther();
}

如果li标签里面有textConstant,那么可以这样写:-

(By.xpath("//ul/li[contains(.,'"+textConstant+"')]));

这里,点 .代表文本()

您可以对 Xpath 使用 AND 运算符。

//ul/li[position()=1 and contains(text(),'"+textConstant+"')]

这将匹配最上面的 li 标签,其中包含文本常量值。