如何获取具有2个值的元素的text()

daolsyd0  于 2021-08-25  发布在  Java
关注(0)|答案(2)|浏览(310)

html元素如下所示

我想得到值“7.99”
我尝试了以下方法:

String price = driver.findElement(By.xpath("//div[@class='inventory_item_price']")).getText();

但价格是“7.99美元”

sqxo8psd

sqxo8psd1#

正如您自己看到的,元素包含两段文本“$”和“7.99”。 .getText() 方法返回元素的整个文本,即“$7.99”。
如果要删除“$”符号,只需从结果中删除它,如下所示:

String price = driver.findElement(By.xpath("//div[@class='inventory_item_price']")).getText().replace("$", "");
aoyhnmkz

aoyhnmkz2#

使用js,您可以执行以下操作:
为什么是js?
如果将$更改为其他货币,脚本将开始失败(如果使用替换方法)

WebElement elem = driver.findElement(By.xpath("//div[@class='inventory_item_price']"));
String text = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].childNodes[2].textContent;", elem);
System.out.println(text);

相关问题