[英]Selenium finding xPath ID element that changes in Java
我有這個xPath: //*[@id="searchpopupSCH_USER_1496689382343"]
但在后端,這13位數字實際上是一個時間戳,因此每次您重新測試/重新單擊時,它都會更改。
例如,
1st tab, //*[@id="searchpopupSCH_USER_1496689382343"] 2nt tab, //*[@id="searchpopupSCH_USER_1496694868441"]
是否有針對不斷變化的ID的目標?
我當時在考慮使用Reg Exp,但是不知何故,我有點受阻。
String frameID = "//*[@id=\"searchpopupSCH_USER_";
String regExp = "\\d{13}";
Pattern p = Pattern.compile(frameID + regExp);
WebElement xPathUserList;
xPathUserList.findElement(By.xpath(p)); //param of xpath only take String
我關心的是WebElement。
您如何定位By.Path(“ // * [@ id = \\” searchpopupSCH_USER_xxxxxxxxxxxx“
感謝您的投入。
使用包含? 甚至starts-with
//*[contains(@id, "searchpopupSCH_USER_")]
//*[starts-with(@id, "searchpopupSCH_USER_")]
聲明如下變量:
public static final String TIME_STAMP = new SimpleDateFormat("ddMMyyHHmmss").format(Calendar.getInstance().getTime());
然后在xpath中:
driver.findElement(By.xapth("//htmltag[@id="searchpopupSCH_USER_".concat(TIME_STAMP + "]"));
根據您的要求,您可以更改日期格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.