我需要捕获包含动态生成的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的内容
请提供解决方案。
答案 0 :(得分:0)
如果我是你,我会尝试使用css选择器,看看它是否有效。
假设您使用的是Java,我有以下代码。使用获得的文本,您可以解析以获取ID。
driver.findElement(By.cssSelector("div#RequestMessage")).getText()
答案 1 :(得分:0)
如果动态生成ID,则无法在其上进行中继。我会用//*[@class='gMessages']//em
。还有一件事情不是很清楚:你想通过它的文本或元素文本来获取元素。在第一种情况下,您需要将text()
函数添加到xpath中,在第二种情况下 - 使用WebDriver方法getText()
。
答案 2 :(得分:0)
//div[@class='gMessages']//div[@class='messages']//em
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();