【发布时间】:2018-10-31 18:45:35
【问题描述】:
有没有办法使用ctrl+f 之类的东西在网页上搜索单词?如何使用 Java 和 Selenium 在网页上搜索和突出显示某些单词?
比如我需要在这个网页上搜索单词“test”:https://www.wedoqa.com/blog/
我试图混合一些答案,所以我写了这样的代码:
WebElement matchedElement = driver.findElement(By.xpath("//*[text()='test']"));
((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red;');", matchedElement);
if(driver.getPageSource().contains(matchedElement.toString())) {
System.out.println("The page contains word: " + matchedElement.toString());
} else {
System.out.println("The page does not contains word asdfghjkl");
}
但是,然后我得到了这样的错误:
*** Element info: {Using=xpath, value=//*[text()='test']}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:317)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:419)
at org.openqa.selenium.By$ByXPath.findElement(By.java:353)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:309)
at test.Test1.main(Test1.java:59)
【问题讨论】:
-
请告诉我们您到目前为止尝试了什么?
-
您的代码试验和错误跟踪。
-
@Prany 我什至不知道如何做到这一点......我没有任何代码......我知道如何找到一些元素,我看过很多教程如何突出元素,但没有一个人如何找到并突出显示某个单词。
-
@cruisepandey 正如我对 Prany 所说的,我还没有任何代码。我要求最简单的方法来做到这一点,因为我在网上找不到任何关于此的教程。
-
请解释为什么您希望浏览器搜索该字符串而不是检索正文并使用 Java 进行搜索