gpt4 book ai didi

java - 如何使用Selenium和Java从html中提取文本2?

转载 作者:行者123 更新时间:2023-12-02 01:10:19 46 4
gpt4 key购买 nike

将 Java 与 Selenium 以及 Eclipse 和 Chrome 结合使用。我在 Chrome 中的页面上想要找到 xpath,因此我进行了检查,然后右键单击 -> 复制 -> xpath,它返回了以下内容:

 //*[@id="queueForm"]/div[1]/span[3]/text()[2]

所以我做了

 // driver is an instance of ChromeDriver
String xp = "//*[@id="queueForm"]/div[1]/span[3]/text()[2]";
WebElement ele = driver.findElement(By.xpath(xp));

并且我收到一条错误消息,该消息返回一个对象而不是 WebElement。有人遇到过这种情况吗? HTML 就像

<span class="displayOption" style="float:right;">
Page <input id="gotoresultpage" type="text" onkeypress="javascript:fncCaptureEnter(this);" size="1" maxlength="4" tabindex="1" value="1" class="navigationMenu" style="width:20px;text-align:right"> of 2
<input type="button" tabindex="1" value="Go" id="pageGo" name="pageGo" class="navigationButton" onclick="g_objQueueUiController.fncGo();">

<span class="recordNavigationBack"></span>

<span class="recordNavigationForwardEnabled" id="pageNext" name="pageNext" onclick="g_objQueueUiController.fncGoToPage('2')"></span>

</span>

您可以在其中看到文本“Page”,稍后再看到“of 2”。页码在输入框中。

所以我试图获取“of 2”文本。我已经从输入框的值中获取了页码,但不知道如何获取“of 2”。

最佳答案

从 XPath 表达式的末尾删除此 text(),该值是从 WebDriver.find() 返回的值。函数必须是 Node ,而不是文本。

因此您需要将代码修改为:

//input[@id='gotoresultpage']

示例代码:

WebElement someElement = driver.findElement(By.xpath("//input[@id='gotoresultpage']"))
String text = someElement.getText();

更多信息:

关于java - 如何使用Selenium和Java从html中提取文本2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57691655/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com