如何在字符串变量中获取此电话会议号码。
<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 line
的这个例外ErrorHandler$UnknownServerException: missing ) after argument list
请任何帮助,谢谢
答案 0 :(得分:3)
你可以使用它,
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']")));
答案 1 :(得分:2)
你在这里混合了很多东西。您不能只复制/粘贴Selenium代码并期望它在JavaScript中工作。
我的建议是首先使用Selenium的XPath机制找到元素,然后将其传递给JavaScript字符串。您只是在对抗 Selenium的API,因为它允许您以各种方式查找元素,并将其转换为可以在JavaScript 中使用的对象如果您想要。
JavascriptExecutor jse = (JavascriptExecutor)driver;
WebElement element = driver.findElement(By.xpath("//span[@itemprop='telephone']"));
jse.executeScript("return arguments[0].text", element);
(未经验证,未经验证的代码,我没有Java IDE可以处理,可能无法编译)
答案 2 :(得分:1)
内部xpath字符串似乎没有正确形成。这是因为使用了“单引号”:
尝试更换:
String script = "return document.getElementByXPath('//span[@itemprop='telephone']').getText();";
使用:
String script = "return document.getElementByXPath(\"//span[@itemprop='telephone']\").getText();";
^ ^
答案 3 :(得分:0)
试试这个
driver.findElement(By.id("telefoon_28836_hidden")).getText();
如果有效,请告诉我们。
答案 4 :(得分:0)
这会导致错误:document.getElementByXPath is not a function
使用document.evaluate
代替。 <{3}}中对 yckart 的回答很有帮助。
希望这有帮助!