无法捕获正确的xpath

时间:2014-04-19 13:27:28

标签: xml selenium xpath

我需要捕获包含动态生成的ID的文本的xpath。

以下是代码

<div id="RequestMessage" class="gMessages"><div class="messages">
    <em>Request ID 12354.<br />
<a href="pAR.do?param_methodKey%3Asubmit.viewResponse=Link">View the response to your  request.</a><br /></em>

我正在使用以下xpath

// * [@ id中=&#39; RequestMessage&#39;] / DIV / EM

但是webdriver没有捕获xpath的内容

请提供解决方案。

3 个答案:

答案 0 :(得分:0)

如果我是你,我会尝试使用css选择器,看看它是否有效。

假设您使用的是Java,我有以下代码。使用获得的文本,您可以解析以获取ID。

driver.findElement(By.cssSelector("div#RequestMessage")).getText()

答案 1 :(得分:0)

如果动态生成ID,则无法在其上进行中继。我会用//*[@class='gMessages']//em。还有一件事情不是很清楚:你想通过它的文本或元素文本来获取元素。在第一种情况下,您需要将text()函数添加到xpath中,在第二种情况下 - 使用WebDriver方法getText()

答案 2 :(得分:0)

  1. 您可以尝试遵循 Xpath = //div[@class='gMessages']//div[@class='messages']//em
  2. 如果您使用带有硒的 JAVA。我的建议是使用 JAVASCRIPT Executor。
WebDriver driver = new ChromeDriver();
   WebElement webElement = driver.findElement(By.xpath("//div[@class='gMessages']//div[@class='messages']//em"));
   JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
   String text = js.executeScript(“return document.getElementById(‘your_ID’).innerHTML”).toString();