繁体   English   中英

使用Selenium Web驱动程序从网站获取隐藏文本值的Javascript

[英]Javascript to get hidden text value from website using Selenium web driver

我如何在字符串变量中获取此Telefoon nummer。

<span itemprop="telephone" class="hidden" id="telefoon_28836_hidden">010 - 79 53 364</span>

我尝试了这段代码,但没有成功。

JavascriptExecutor jse = (JavascriptExecutor)driver;
 String script = "return   document.getElementByXPath('//span[@itemprop='telephone']').getText();";
 String telno1 = ((JavascriptExecutor) driver).executeScript(script).toString();

我正在为String telno1行获取此异常

ErrorHandler$UnknownServerException: missing ) after argument list

请任何帮助谢谢

你可以用这个

String theTextIWant = ((JavascriptExecutor) driver).executeScript("return arguments[0].value;",driver.findElement(By.xpath("//span[@itemprop='telephone']")));

您只需要使用javascript提取输入字段的value属性即可。 如果它是div或textarea,那么您想使用innerHTML,innerText或textContent属性。 像下面一样

String theTextIWant = ((JavascriptExecutor) driver).executeScript("return arguments[0].innerHTML;",driver.findElement(By.xpath("//span[@itemprop='telephone']")));

您在这里混合了很多东西。 您不能只复制/粘贴Selenium代码并期望它可以在JavaScript中工作。

我的建议是首先使用Selenium的XPath机制查找元素, 然后将其传递到JavaScript字符串中。 硒的API只是工作,因为它可以让你找到各种方法元素,它会变换为可在JavaScript中,如果你想使用的对象。

JavascriptExecutor jse = (JavascriptExecutor)driver;
WebElement element = driver.findElement(By.xpath("//span[@itemprop='telephone']"));
jse.executeScript("return arguments[0].text", element);

(未经测试,未经验证的代码,我没有Java IDE可以处理,可能无法编译)

内部xpath字符串似乎格式不正确。 这是因为使用了“单引号”:

尝试更换:

String script = "return   document.getElementByXPath('//span[@itemprop='telephone']').getText();";

带有:

String script = "return   document.getElementByXPath(\"//span[@itemprop='telephone']\").getText();";
                                                      ^                              ^

尝试这个

driver.findElement(By.id("telefoon_28836_hidden")).getText();

如果可行,请告诉我们。

这将导致错误: document.getElementByXPath is not a function

改用document.evaluate 在此链接中对yckart的回答很有帮助。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM