簡體   English   中英

Selenium查找Java中發生變化的xPath ID元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM