请有人帮忙。
我需要掌握每次跑步后产生的数字。由于这个数字在每次运行后都会发生变化,我需要抓住它并将其写入Excel工作表。我在此字段中使用Xpath
但不确定如何使此字段更通用,以便仅捕获最后生成的数字。
我尝试的Xpath
如下所示,正在更改的语法是div[2]
到div[3]
: -
driver.findElement(By.xpath("/html/body/div/div[3]/div/div/div[3]/div/section/section/article/div[2]/div/div/div/div[2]/div[2]/div[1]/div/div[2]/p")).getText();
driver.findElement(By.xpath("/html/body/div/div[3]/div/div/div[3]/div/section/section/article/div[2]/div/div/div/div[2]/div[3]/div[1]/div/div[2]/p")).getText();
我的HTML SOURCE代码是:
<div class="card-details row"> <div class="pane base4"> <div class="card"> <div class="card-name"> <div class="card-number"> <h4>Card number</h4> <p>633597015500042861</p> </div> <a class="submit-btn uniform-button button-smaller button-orange" href="/my-account/replacement-card?cardId=1ce25b86-27e6-4ce8-8ef3-6576f9a0ae84"> </div>
谢谢和问候, AZ。
答案 0 :(得分:0)
请尝试使用xpath下方检索卡号。
String cardNum = driver.findElement(By.xpath(".//div[@class='card-number']/p")).getText();
您正在访问<div class="card-number">
标记中随机生成的卡号。
希望这有帮助。
答案 1 :(得分:0)
//h4[contains(text(),'Card number')]/following-sibling::p
或
div[h4[contains(text(),'Card number')]]/p
如果在代码中多次出现相同的xpath,并且您想要选择最后一个,那么就是这样:
xpath[count(sameXpath)]
这将为您提供xpath的最后一次出现
答案 2 :(得分:-2)
请按以下方式进行:
// as per your given xpath
String FirstXpath = "/html/body/div/div[3]/div/div/div[3]/div/section/section/article/div[2]/div/div/div/div[2]/div[";
String SecondXpath = "]/div[1]/div/div[2]/p";
// make sure here i value is as per your application
for(int i=2;i<4;i++){
driver.findElement(By.xpath(FirstXpath + i + SecondXpath)).getText();
}
根据你的div值改变,确保i
的值。
根据html提供的driver.findElement(By.xpath("//*[@class='card-number']/h4/p")).getText();
。